人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Perl の参照(リファレンス)ですが上手く動きません。ご指摘お願いします。

sub func($¥@)
{
my($a, @ar)= @_;
push @$ar, ”add”;
}

# サブルーチンの呼び出し
my($in);
my(@out);
&func($in, ¥@out);
# @out に ”add” が入ってほしい。

●質問者: disca
●カテゴリ:コンピュータ 生活
✍キーワード:ADD ar Out Perl PUSH
○ 状態 :終了
└ 回答数 : 1/2件

▽最新の回答へ

1 ● くまっぷす
●40ポイント

http://oshiete1.goo.ne.jp/kotaeru.php3?q=240709

[教えて!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)=@_;

なのでした。リファレンス自体は(ポインタみたいなもんなので)スカラー変数で受ける必要があります。

◎質問者からの返答

ソースコードありがとうございます。

>リファレンス自体は(ポインタみたいなもんなので)スカラー変数で受ける必要があります

この「「一言」」で全てが解決できました^^/。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ