質問: split(/\t/,${'line'.$i}); ${'hash'.$i}{${'segments'.$i}[0]}=${'segments'.$i}[1]; } close(ARG1); } #下記で、その後 各ハッシュに設定したデータをもとに いろいろ計算したい foreach my $a (keys %{'hash'.$i}){ ・・・ } 今は、Can't declare array dereference in "my" at test.pl line XX, near "} =" と 配列定義でエラーとなり処理できません。
回答: えぇっと.... わざわざそんな面倒なことをする理由が思いつかない. 配列とリファレンスを使えば同じことができる. たとえば「lineほげほげ」は, 配列を使って ${'line'.$i} = $_; の代わりに $line[$i] = $_; とすればより簡単になるのでは. ところで, forループの中で my するとその変数は「forループの外」では使えないような気がするんだが....