■2004-09-23
* [今月のAcme] Acme::Dot(先月のAcme)
これで8月分。今回はAcme::Dot。
package DotTest; use Acme::Dot; sub new { bless {}, shift } sub hello { my $self = shift; print @_,"\n"; } 1;
上はソース内でuse Acme::Dot
しただけの、何の変哲もないクラス。そして…
use strict; use DotTest; my $x = new DotTest; $x.hello(1,2,3); # $x->hello(1,2,3) と同等
ご覧のように、オブジェクト指向な言語によくみられるメソッドの呼び出し方が可能に! このモジュールのAcmeなところは、文字を連結する.
演算子をオーバーライドして、メソッドを呼び出すようにしているところ。ソースフィルタで.
を->
に書き換えれば同じ事ができるのに、あえて文字列連結演算子を使うこんな方法を取るところが素敵です(Acme::Dotをuseしたクラスだけに適用されるという利点もありますが)。
このモジュールの作者のSimon Cozensは、Perlコミュニティに多大な貢献をされてきたわけですが、宣教師になるために大学に戻るそうです。で、彼の100個目のモジュールAcme::OneHundredNotOutをかなり前に訳し始めたのですが、三分の二ぐらいのところで中断したまま。終わるのはいつになるやら……
[]