さて、今回は、 関数に引数が渡るときの話を書きます。 変数を追うか追わないかそれが問題だ use strict; my $c = 1; hoge($c); こういうソースを見たとき、 $cの値がかわってたら大変だなぁ と思って hoge関数の中を読む事はまずない。 なぜかというと、 関数へは値のコピーしか渡らない「値渡し」だからである。 それに対して、 つぎのようになっていると「参照渡し(Perl的にはリファレンス渡し)」なので、 $cの内容がhoge関数の中で書き換えられる可能性があるのでhoge関数の中を読まなければならないだろう。 use strict; my $c = 1; hoge(\$c); ただ、値渡しの場合でも、hoge関数の中のロジックを理解しておかないと それ以降の部分を読むに苦労しそうならばhoge関数の中まで目を通しておかないといけないだろう。 目も当てられない状況