Perlでメソッドが前置なのはprint由来だったかな。

Perlでメソッドが前置なのはprint由来だったかな。

http://d.hatena.ne.jp/aql/20050705/p1

 Perlでメソッドを前置するのは

print $fh "foo bar";

――という、コンストラクタとは全く関係ないトコから来てた気がします*1

 僕もd:id:naoyaさんと同じくClass->new派ですが、printに限ってはほとんどの場合上記のように書いてます。

 最近書くコードはクラス名を変数に突っ込んでいることが多くて*2、そういう時はコンストラクタであるのを明示するために

my $foo = new $Foo;

とかしたほうがいいのかなー、なんて一瞬考えたこともありますが、やっぱり

my $foo = $Foo->new;

と書いてます。

*1:確かめてないので嘘かもしれない……。

*2:DIとか考えなくてもいいのがPerlの良いトコだ:)