みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Perlのサブルーチンの引数引継ぎ?

こんにちは。

Perlの引数について質問です。
サブルーチンに引数を渡し、サブルーチンの中で他のサブルーチンをよんでいます。
すると引数を渡していないサブルーチンにまで引数が与えられてしまっているようです。
@_で受け取ると引数が渡されてしまい、$_[0]だと渡されずにすみます。
これはなぜなのでしょうか?Perlには引数を引き継ぐルールでもあるのでしょうか?

以下、サンプルです。
--------------------------------
&test('引数です');

sub test
{
&test2;
}

sub test2
{
(my $hoge) = @_;
}
--------------------------------

$hogeに「引数です」が入ります。
&test2;を&test2();とすると大丈夫です。

投稿日時 - 2012-07-12 11:46:09

QNo.7585938

すぐに回答ほしいです

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

仕様です.

参考URL:http://perldoc.perl.org/perlsub.html

投稿日時 - 2012-07-12 11:57:42

お礼

ありがとうございました。

投稿日時 - 2012-07-19 15:08:13

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

最初の人が答えておりますが、補足を少し。

&はどうしても必要なんですか?
Perlは、テレビの中を修理する手段や、
テレビをテレビじゃない物にしてみたり、
リモコンやボタンの定義や使い方を改造する手段がよくあります。

私はほとんどの状況で好ましいとは思いませんが、
その辺の再考が必要では。

回答については1の人のはマニュアルなのでそれでいいかと思います。
ちなみに、インストールしたPerl自体にも付属してますよー。

投稿日時 - 2012-07-13 00:53:14

お礼

ありがとうございました。

投稿日時 - 2012-07-19 15:08:29

あなたにオススメの質問