連想配列に

%hash = (
  'audio' => "オーディオ",
  'video' => "ビデオ",
  'cd' => "CD-ROM",
  'dvd' => "DVD",
  'bench' => "ベンチマーク",
  'text' => "テキスト",
  'bin' => "バイナリ"
);
の様に値をセットして
  while(($k, $v) = each(%hash)){ print "$k = $v\n"; }
とか
  foreach (keys(%hash)){ print "$_ = $hash{$_}\n"; }
ってやっても
  'audio', 'video', 'cd', 'dvd' => "DVD", 'bench', 'text', 'bin'
の順番 (代入した順番) で出力してくれないんですけど、代入順での出力を
希望するなら
  @list = ('audio', 'video', 'cd', 'dvd' => "DVD", 'bench', 'text', 'bin');
の様に“順番”を別で保持しておくしか無いんでしょか?

ちなみに上記のコードだと
audio
cd
bin
dvd
video
text
bench
の順番で出力されます。