- ベストアンサー
Perlのサブルーチンについて
小さいプログラムで確かめたのですが、引数がないときは、 &test();としないと、 &test;では、$_[0]の値が正しくない というのは、Perlの仕様でしょうか? Perlを本格的に始めようとしていますが、 このようにはまり易い事例はたくさんあるのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
仕様です。 &test;では、その前の@_が引き継がれます。 その意味では、別に正しくないわけではありません(^^; (ただ、あまり好ましくは無いと言えるかもしれませんが) 細かいことは多々あります。 サブルーチン関連でぱっと思いつくのは ・&の省略条件 ・サブルーチンの入れ子(クロージャ) ・return undef;でなくて、return; ・プロトタイプ宣言 などでしょうか。 きちんとした参考書などには注意書きがのっていると思います。 ただ、やっぱり気づかずにはまることはあると思います(^^; #私個人はなんでもないところにもしょっちゅうはまりますが(--;
その他の回答 (1)
- hana-hana3
- ベストアンサー率31% (4940/15541)
回答No.1
>このようにはまり易い事例はたくさんあるのでしょうか? Perlだけでなく、どのような言語を使っても、それぞれに決まり事があるので、それを守らないと予測した結果を得ることができません。