tokuhirom's Blog

multiperl は素人がつかう必要がない件について

基本的に Perl5 は下位互換性が非常によく保持されていますから、use 5.10; などによる縛りをかけないかぎり、「過去バージョンでうごくのに最新のバージョンだとうごかないよう」ということはまずありません。
もしあれば、それは perl5 のバグです。(perl5.10.0 はかなり大幅に書きかえられているので、エッジケースでごくまれにこういうバグを踏みぬく可能性があります)

「最新バージョンでうごくのに、過去のバージョンでうごかないよう」というケースもまずありません。use 5.008001; としているモジュールでは、ほぼほぼ互換性が問題になることはありません。
5.8.5 以前で sub import { } の中で @_ を変更してから goto すると SEGV する*バグ*とか、そういう既知バグを踏む可能性があるぐらいです。
そのへんは perl\d+delta にのってるので、動作しないバージョンから動作してるバージョンまでの delta をながめた方がはやいです。最小再現ケースをつくって、さらせば他の人にためしてもらうこともできますし。

また、本当に動作してるかの確認は、とりあえず CPAN にあげてしまえば CPAN Testers がゴリゴリテストしてくれるので、手元でやらなくていいという話もあります。

というわけで、ほとんど multiperl などというものをつかう必要はないのに、なぜつくるのかといえば、自分は Perl5 のエグいところをつくコードを書くからなのでした。

で、ほとんどつかう必要がないわりに「きりかえわすれてたわー orz」ってなるリスクがたかいので、rvm みたいな switching アプローチは必要ありません。

素直に ~/multiperl/5.8.9/bin/perl Makefile.PL とかフルパス指定してつかえばいいし、Makefile.PL 起動して一回 Makefile つくっちゃえば、Makefile の中にはフルパスがかいてあるから、make test は普通にうごきます。