Ho questa tabella di hash da ordinare in base all'età
Codice PHP:
%eta=( Alberto => 28,
           
Stefano => 31,
           
Luca => 20,
           
Sandro => 21);

@
keys(%eta);
@
values(%eta);

$n=$#k;
$p=$n;

do
{
$scambio=0;
for(
$i=0;$i<($n-1);$i++){
if(
$v[$i] < $v[$i+1]){
   
$app=$v[$i];
   
$app1=$k[$i];
   
$v[$i]=$v[$i+1];
   
$k[$i]=$k[$i+1];
   
$v[$i+1]=$app;
   
$k[$i+1]=$app1;
   
$scambio=1;
   
$p=$i+1;
}
$n=$p;
}
}
while(
$scambio==0);

print
"@k\n";
print
"@v\n"
In questo modo funziona, l'unico problema è che i valori non sono numeri ma stringhe e quindi il 20 viene prima del 21.