質問させてください。

  $data { 'Class_A' } [ 0 ] { 'FirstName' } = '太郎' ;

みたいな配列とハッシュを組み合わせた変数を用意しようと思います。
リファレンスとか多次元とかサブルーチンとかごちゃごちゃで混乱してます。


【1】変数の値を生成し、代入したい

  my %data;
    #(略。ループとかDBからの取得とか)
  my %hash;
  $hash{'FirstName'} = '太郎';
  $hash{'FamilyName'} = '田中';
  push ( @data{'Class_A'} , \%hash );
    #(略。ループ終了とか)

と書いてみたのですが、型が違ぇよボケ(意訳)と言われてしまいました。
(実際には、Class_Aや田中、太郎の部分にはデータベースから取得した値が入る)

仕方ないので、

  my @tmp = @data{'Class_A'};

と、あらかじめコピーしておいてから、最後に

  push(@tmp,\%hash);
  @data{'Class_A'} = \@tmp;

一時ファイルの中身を戻すとかやってる始末です。
もうちょっとスマートな方法はありませんでしょうか。