Anzitutto quando si inserisce un codice e` opportuno usare i tag VB, altrimenti si perde la formattazioine e la cosa diventa piu` difficile da capire:Nota che se in una singola riga c'e` Ulisses, non cerca se c'e` Dedalus, ma se nella singola riga non c'e` Ulisses, va a cercare Dedalus.codice:my $input = shift; # legge il primo input e lo salva nella variabile $input my $corpus_joyce = shift; # legge il secondo input e salva in $corpus_joyce open CORPUS,$corpus_joyce; # apre il file indicato dal secondo input while (<CORPUS> ) { # loop sul file aperto - legge una riga $input = $_; # salva la riga letta in $input (in questo modo sovrascrive la variabile) if ($input =~/Ulisses/) { print $input; } # cerca se nella riga letta c'e` la parola Ulisses e stampa la riga elsif ($input =~/Dedalus/) { print $input; } # se non c'e` Ulisses, cerca se c'e` Dedalus } close CORPUS
Forse il tuo intnto era una cosa del genere:Ci potrebeb anche essere il modo di scrivere qualcosa del tipo:codice:my $input = shift; # legge il primo input e lo salva nella variabile $input my $corpus_joyce = shift; # legge il secondo input e salva in $corpus_joyce my $line = ""; # prepara una variabile da usare nel loop open CORPUS,$corpus_joyce; # apre il file indicato dal secondo input if($input eq 'Ulisses') { while ($line = <CORPUS> ) { # loop sul file aperto - legge una riga e slava in $line if ($line =~/Ulisses/ ) { print $input; } # cerca se nella riga letta c'e` la parola Ulisses e stampa la riga } } elsif($input eq 'Dedalus') { while ($line = <CORPUS> ) { # loop sul file aperto - legge una riga e slava in $line if ($line =~/Dedalus/ ) { print $input; } # cerca se nella riga letta c'e` la parola Ulisses e stampa la riga } } close CORPUS
if ($line ~=/$input/) { print $input; }
Ma non ricordo piu` come e` la sintassi corretta.

Rispondi quotando