Ciao,
ho un file in formato txt che contiene alcuni dati....
es:
|nome|cognome|età|
|Mario|Rossi|50|
|Giovanni|Bianchi|20|
|Giuseppe|Verdi|35|
Premettiamo che i dati che sono nel file contengono sempre la colonna "nome", "cognome" e "età" ma la loro posizione dela colonna può cambiare in modo casuale es:
|cognome|età|nome|
|Rossi|50|Mario
|Bianchi|20|Giovanni
|Verdi|35|Giuseppe|
Ho scritto questo codice per poter ottenere sempre i dati che voglio semplicemente richiamando delle chiavi che corrispondono alla prima riga: |cognome|nome|età|
Il codice che ho scritto funziona, a video vengono stampati i dati a seconda di come sono scritti nel file .txtopen (COOIS, "810100016-10.txt");
while (<COOIS>)
{
push(@ODL, $_);
}
$r_menu--;
@chiave = split("\Q|", @ODL[$r_menu]);
foreach $var (@chiave)
{
$var =~ s/^\s+|\s+$//g;
@chiave[$indice] = $var;
$indice++;
}
$r_menu = $r_menu + 2;
splice (@ODL,0, $r_menu);
pop (@ODL);
foreach(@ODL)
{
@valore = split("\Q|", @ODL[$n_linea]);
@tabella{@chiave}=@valore;
print qq~
$tabella{'nome'}
$tabella{'cognome'}
$tabella{'età'}
$n_linea++;
}
~;
close (COOIS);
Rossi
Mario
50
Bianchi
Giovanni
20
Verdi
Giuseppe
35
Io vorrei visuliazzare questi gruppi in ordine per età dal più giovane al più vecchio, in questo modo:
Bianchi
Giovanni
20
Verdi
Giuseppe
35
Rossi
Mario
50
però non ho idea di come fare mi potete aiutare?

Rispondi quotando