>>732
%id1, %id2, ... というハッシュに代入するのは、うまいやり方とは言えません。

以下のように、ハッシュの配列を用意した方が処理が簡単だと思います。
@id = (
 {
  id => 1,
  name => "山田",
  age => 20,
  sex => "男",
 },
 {
  id => 2,
  name => "田中",
  age => 23,
  sex => "女",
 },
 ...
);
それぞれは、$id[0], $id[1] などで取り出せます。
データ内のidの値と配列添字を一致させたいなら、先頭要素を空にして下さい。