• ベストアンサー

ハッシュリファレンスの無名変数

サブルーチンにハッシュリファレンスを渡すために、 以下のようにすると上手く実行されます。 %hash = ( baa => 1, boo => 2 ); test(\%hash); sub test { my %hash = %{shift}; print $hash{baa}; } これを、%hashに格納せずに、 直接渡そうとすると上手くいきません。 test(\( baa => 1, boo => 2 )); 考え方が間違っているのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • Werner
  • ベストアンサー率53% (395/735)
回答No.1

test({ baa => 1, boo => 2 }); でうまくいきませんか? [参考] http://www.rfs.jp/sb/perl/02/10.html の「無名ハッシュへのリファレンス」 #余談 testサブルーチンはこっちの環境だと 以下のようにしないと動かなかった。 sub test { my %hash = %{ (shift) }; print $hash{baa}; }

masaota56
質問者

お礼

ありがとうございました!上手くいきました。 testサブルーチンは表記ミスです、すみません。