[Linux-Biella] Perl e espressioni regolari in array
Daniele Segato
daniele.bilug a gmail.com
Ven 23 Apr 2010 11:44:51 CEST
2010/4/23 Claudio M. <cmaffio a bilug.it>:
> Ho un problema con un piccolo codice perl
>
> Ho un array con una serie di espressioni regolari e ho un file che devi
> elaborare
> Come faccio ad esaminare riga per riga il file in input e avere in output
> tutte le righe che soddisfano anche una sola delle espressioni regolari?
>
> Es.
> @trova = ();
> push @trova, "\\spippo\\s";
> push @trova, "\\spluto\\s";
>
> while (<WALTDISNEY>) {
> chomp;
> my $riga = $_;
> foreach $personaggio (@trova) {
> if ($riga =~ /$personaggio/) {
> print $_;
> }
> }
> }
>
> questo ovviamente non funziona in quanto mi da un errore di sintassi nella
> riga dell'if
>
> Avete idee?
intanto:
1. se non esci dal foreach al primo match ti può stampare la stessa
riga più volte (sempre se la stessa riga può metchare più volte)
2. prova a leggere qui, forse a te serve use re 'eval';
http://www.sdsc.edu/~moreland/courses/IntroPerl/docs/manual/lib/re.html
3. occhio che se $personaggio è una stringa vuota // in perl significa
"il match precedente"
non so se ti ho aiutato, perl non lo conosco moltissimo,
ciao,
Daniele
Maggiori informazioni sulla lista
Linux