Ciao a tutti,
ho idea di non aver centrato il titolo con ciò che chiedo e me ne scuso anticipatamente.
Ho un file di input costituito da testo con caratteristiche regolari, ogni riga inizia con un numero e poi ho dei codici separati ciascuno da una tabulazione.
(es:
1 xxx yyy zzz aaa bbb ccc ddd fff ggg
)
Ho inserito ogni riga di testo in un hash che prende come chiave il numero iniziale della riga e come valore un array contenente tutta la riga (così che l'elemento 6 dell'array sarà ccc)
Io voglio salvare il valore dell'elemento 6 di tutte quelle righe/array che hanno come elemento 7 un certo valore e come elemento 3 un'altro. (so che l'elemento 6 è sempre un numero)
Fatto questo, voglio rintracciare il valore, e quindi l'array, che ha come chiave il valore dell'elemento salvato precedentemente per poi eseguire altri controlli.
Posto il codice:
codice:
%hash = ($r[0] => $r);
foreach ($hash{$r[0]}[7]=~/regexp/){
if ($hash{$r[0]}[3]=~/regexp/){
$m=$hash{$r[0]}[2];
$t=$hash{$r[0]}[6]; #fino qui tutto ok, riesco a stampare $m e $t
if($hash{$r[$t]}[7]=~/regexp/){ #qui non prende il valore di $t
if ($hash{$r[$t]}[3]=~/regexp/){
$s=$hash{$r[$t]}[2];
print "$s\t$m\n";
}
}
}
Perciò il mio problema è: come faccio a prendere il valore dell'hash che ha come chiave ciò che ho memorizzato in $t?
Spero di essere riuscita a spiegarmi.
Grazie a tutti per qualsiasi aiuto potrete darmi.