Blog

perl5i について

最近、ことあるごとに perl5i がヨイヨーといっている。

perl5i は、perl5 + i ということなのであって、perl6 にたいする洒落なのであって、かつこの i とはいうまでもなく sqrt(-1) のことである。

perl5 は、CPAN にあがっているモジュール郡を利用することにより非常に協力な言語となっているが、一方で初心者はモジュールの選定などがまずもってむずかしいという難点があり、「電池はいってます」という正直意味がわかりづらくて日本語の標語としてはいかがなものかとおもうような標語をかかげる言語にくらべて初心者がとっつきづらいという問題がある。

そこで、perl5i では、perl5i のメンテナがえらんだモジュールが自動的にロードされるような仕組みを提供しているため、非常にとっつきやすくなっている。

use perl5i::2;

とかくだけで、かなりいろいろなモジュールがロードされるのだ。

autobox.pm, autovivification.pm, indirect.pm, autodie.pm などの最近うまれた CPAN モジュールたちはもちろんのこと、File::stat や English.pm などの昔からあるモジュールもロードされ、非常にバランスがよい。

また、localtime(), gmtime(), time() も上書きされ、ここから DateTime をよぶことができる。localtime->ymd() などとよべて便利である。

また、method, func などのキーワードも提供されるので、可読性の高いコードを書くことが可能となっている。

package MyInt;
use perl5i::2;

method new($class: $i) {
  bless {i => $i}, $class;
}

method add ($x) {
  $self->{i} + $x;
}

わりと攻め気なモジュールではあるが、

Yes, the API is stable and its well tested. Its effects are mostly lexical and incompatibilities are with obscure "features" that you're probably not using.

という、どこかできいたような標語をかかげているので、まあ大丈夫でしょう。