Ciao a tutti,
ho svolto il seguente esercizio
Ho fatto una cosa del genere:Si vuole realizzare uno script perl che imiti il comando wc. In particolare, lo script deve implementare un
comando wc [opzioni] file in grado di stampare sullo standard output un conteggio delle linee o
parole presenti su un file di testo specificato come parametro. In particolare, lo script wc accetta come
opzioni le stringhe:
(1)–l
(2)–w
(3)–w=”value”
Se presente l’opzione –l lo script restituisce in output in numero di linee presenti nel file. Se presente
l’opzione –w lo script restituisce in output in numero di parole presenti nel file. Inoltre, l’opzione –w
può essere associata ad un valore stringa (–w=”value”). In tal caso, il comando restituisce il numero di
parole presenti nel file corrispondenti al valore (value) indicato. Se nessuna delle opzioni è presente, lo
script si comporta come nel caso (2).
Ho difficoltà per quanto riguarda l'opzione –w=”value” ,dovrei prendere il contenuto della variabile value quindi solo da uguale in poi...codice:#!/usr/bin/perl open (FILE, "file1"); @contenuto=<FILE>; print "Inserire il nome del comando "; #$input="wc -l"; $input=<STDIN>; chomp $input; print "input = $input\n"; @value=split(/-w=˝*˝/,$input); print "value = @value\n"; if($input eq "wc -l") { print " comando wc -l " ; foreach $riga (@contenuto) { print "sono qui nel comando wc -l : "; $cont++; } } if($input eq "wc -w") { print " sono nel wc -w " ; foreach $riga (@contenuto) { print "sono qui nel wc -w :"; @contenuto2=split(' ', $riga); } for($i=0; $i<@contenuto2; $i++) { $cont++; } } if($input eq "wc -w=$value") { print " sono nel wc -w= value " ; foreach $riga (@contenuto) { print "sono qui nel wc -w = value :"; @contenuto2=split(' ', $riga); } for($i=0; $i<@contenuto2; $i++) { if($value eq $contenuto2[$i]) { $cont++; } } } if($input eq "wc") { print " sono nel wc " ; foreach $riga (@contenuto) { print "sono qui nel wc :"; @contenuto2=split(' ', $riga); } for($i=0; $i<@contenuto2; $i++) { $cont++; } } else { print " sbagliato"; } print "cont = $cont\n"; close(FILE);
Così non me lo da:
@value=split('=',$input);
Qualcuno sa suggerirmi qualcosa?
Grazie