ハッシュtableの中身をソーティングし、その値を出力するプログラムです。

%table = ('A' => '5',
'B' => '10',
'C' => '8',
'D' => '13');

sub number {
if ( $table{$a} > $table{$b} ) {
return 1;
}
elsif ( $table{$a} == $table{$b} ) {
return 0;
}
elsif ( $table{$a} < $table{$b}) {
return -1;
}
}

foreach $KEY (sort number values %table){
print "It's $KEY \n";
}

上記のプログラムを実行したところ、tableの値がソーティングされておらず、しかもデバッグにより、サブルーチン内の$aと$bに値が入っていないことが解りました。時分でも減員を調べたのですが解らなかったので、教えて頂けませんでしょうか?