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à|



open (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);
Il codice che ho scritto funziona, a video vengono stampati i dati a seconda di come sono scritti nel file .txt

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?