PDA

View Full Version : [PERL] salvare l'indice di un array


spkame
12-09-2006, 19:31
Ciao ragazzi, sto preparando un programmino il perl che prende in esame un file di log.

Ho bisogno di sapere il modo con il quale posso salvare l'indice di un array quando l'elemento soddisfa il matching con una variabile che gli passo io.

Pensavo di scrivere così:

foreach (@log) {
if ( $_ =~ /$FS3$/ ){
$i = $#$_; questa è l'istruzione sbagliata...
print $i;
}

Ma $i è =-1

Evidentemente c'è qualcosa che non va in quanto $i dovrebbe essere 2 essendo il terzo elemento dell'array.

Qualcuno mi puo' aiutare?

andbin
12-09-2006, 20:53
Ho bisogno di sapere il modo con il quale posso salvare l'indice di un array quando l'elemento soddisfa il matching con una variabile che gli passo io.Spero di aver capito bene, eh! Non fai prima a gestire tu un indice progressivo??? Metti una variabile inizialmente a 0, nel loop la incrementi e se trovi un match assegni il valore dell'indice a $i.

spkame
12-09-2006, 21:02
Alla fine ci ero arrivato da solo. Grazie comunque!

foreach (@log) {
$i = $i +1;
if ( $_ =~ /$FS3$/ ){
$a = $i -1;
} elsif ( $_ =~ /$FS4$/) {
$b = $i -1;
}
}


:D

andbin
12-09-2006, 21:08
Alla fine ci ero arrivato da solo. Grazie comunque!Forse è meglio:
$i = 0;
foreach (@log) {
if ( $_ =~ /$FS3$/ ){
$a = $i;
} elsif ( $_ =~ /$FS4$/) {
$b = $i;
}
$i = $i +1;
} ;)

spkame
12-09-2006, 21:30
Ma sai che c'hai ragione?

Grazie!

;)