Perlでの『new』とは
newは、Java系(C++,JavaScript等)やVB系(VB.NET,VBScript等)では、オブジェクトをコンストラクトします。
そして、Java系では「new演算子」、VB系では「newキーワード」と呼ばれています。
では、Perlのnewは、なんでしょうか・・・。
Perlの場合は、newという演算子やキーワードは存在しません。また、組み込み関数でもありません。
Perlでのnewは、単なるパッケージサブルーチン(メソッド)で、JavaやVBと同じように記述できるのは、『間接オブジェクト形式』と云う呼び出し方なのです。
逆に云うと『間接オブジェクト形式』での呼び出し方が、たまたまJavaやVBのnewと似ているだけなのです。
my $mycar = new Car('Green', 'セレナ', 2000);
しかし、newは、先ほども述べましたが、単なるメソッドなので、普通の『矢印形式』でも呼び出せます。
my $mycar = Car->new('Green', 'セレナ', 2000);
私としては、クラスから『->』で強く修飾されて明示される『矢印形式』の方がお奨めです。
なぜお奨めかというと実は、『間接オブジェクト形式』には、2つの落とし穴があるのです。それについては、そのうちに・・・。
2つの落とし穴、以下に書いてみました。
http://d.hatena.ne.jp/chaichanPaPa/20080719/1216451016