SORT のマニュアルを読んでやってみたのですが、どうもうまくいきません。

$ORG{'person'}[1]="tanaka";   $ORG{'adana'}[1]="tanachan";  $ORG{'adanaid'}[1]=5;
$ORG{'person'}[2]="takada";   $ORG{'adana'}[2]="takachan";  $ORG{'adanaid'}[2]=2;
$ORG{'person'}[3]="imai";     $ORG{'adana'}[3]="imachan";   $ORG{'adanaid'}[3]=3;
$ORG{'person'}[4]="takenaka";  $ORG{'adana'}[4]="takechan";  $ORG{'adanaid'}[4]=1;
$ORG{'person'}[5]="hirano";   $ORG{'adana'}[5]="hirachan";  $ORG{'adanaid'}[5]=4;

で、
foreach ($key {sort { $ORG{'adanaid'}[$a] <=> $ORG{'adanaid'}[$b] } @ORG{'adanaid'}){
 print qq|\$ORG{'person'} = $ORG{'person'} , \$ORG{'adana'} = $ORG{'adana'}, \$ORG{'adanaid'} = $ORG{'adanaid'}<br>|;
}
としたら、
compilation errors.になってしまいます。
思うに、@ORG{'adanaid'}があやしいのかとも思うのですが、
ただしい記法はどうすればいいのでしょうか?
($ORG{'adanaid'}[1], $ORG{'adanaid'}[2], $ORG{'adanaid'}[3], $ORG{'adanaid'}[4], $ORG{'adanaid'}[5])
という意味の配列を表したつもりなのですが・・・