質問: Perl の参照(リファレンス)ですが上手く動きません。ご指摘お願いします。 sub func($¥@) { my($a, @ar)= @_; push @$ar, ”add”; } # サブルーチンの呼び出し my($in); my(@out); &func($in, ¥@out); # @out に ”add” が入ってほしい。
回答: [教えて!goo] Perlのサブルーチンの引数に配列やハッシュをCall by Valueすることはできない? よその掲示板にも出てますね。リファレンス、デリファレンスめんどくさいです。Rubyにしましょうよ。それはさておき。 こんな感じでやると動きます。 sub func { my($a, $ar)=@_; push @$ar, ”add”; } my($in); my(@out); &func($in,¥@out); 要は関数内で my($a, @ar)=@_;が間違いで my($a, $ar)=@_; なのでした。リファレンス自体は(ポインタみたいなもんなので)スカラー変数で受ける必要があります。