• ベストアンサー

Perlのサブルーチンについて

小さいプログラムで確かめたのですが、引数がないときは、 &test();としないと、 &test;では、$_[0]の値が正しくない というのは、Perlの仕様でしょうか? Perlを本格的に始めようとしていますが、 このようにはまり易い事例はたくさんあるのでしょうか?

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

  • ベストアンサー
回答No.2

仕様です。 &test;では、その前の@_が引き継がれます。 その意味では、別に正しくないわけではありません(^^; (ただ、あまり好ましくは無いと言えるかもしれませんが) 細かいことは多々あります。 サブルーチン関連でぱっと思いつくのは ・&の省略条件 ・サブルーチンの入れ子(クロージャ) ・return undef;でなくて、return; ・プロトタイプ宣言 などでしょうか。 きちんとした参考書などには注意書きがのっていると思います。 ただ、やっぱり気づかずにはまることはあると思います(^^; #私個人はなんでもないところにもしょっちゅうはまりますが(--;

その他の回答 (1)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>このようにはまり易い事例はたくさんあるのでしょうか? Perlだけでなく、どのような言語を使っても、それぞれに決まり事があるので、それを守らないと予測した結果を得ることができません。

関連するQ&A