dポイントプレゼントキャンペーン実施中!

こんにちは。

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

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

sub test
{
&test2;
}

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

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

A 回答 (2件)

仕様です.



参考URL:http://perldoc.perl.org/perlsub.html
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/07/19 15:08

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



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

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

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

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

お礼日時:2012/07/19 15:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!