Perl 5.6 とか Perl 5.8を今だに使ってるあなた!そうです、これを読んでるそこのあなたです。Perl5の開発チームは後方互換に関しては大変神経をつかっていますので、 Perl 5.6とかで動いてたコードをいきなり 5.12で走らせても基本的には動くはずです(多分警告とかは一杯でるだろうけど)。でもだからといって新しいバージョンで施されている様々な最適化や新しい機能を使えないのはちょっと悲しくないですか?

ということで新しい Perlを使いましょう!最新安定版は5.12.1ですよ!ちなみにどのバージョンを2010年8月時点で使うべきか、はこちらのエントリを参照してください

え?アップグレードできない?システム管理者が許してくれない?前入れてたアプリが壊れる?いやいやいや、全然いけますって。自分用のPerlをインストールすればいいんですよ!

ここではそれを簡単に解説しましょう。

まず短い説明は 「perlbrewを使え」です。以上です。

でもそれだけじゃわかんねーよ!って方は以下をご覧下さい。

まず perlbrewをインストールします。こんな感じでスクリプトを一個ダウンロードするだけです:
    > curl -L http://xrl.us/perlbrew > perlbrew

curlってなってるところはwgetでもlwp-downloadでも、なんでも好きなツールを使って下さいね。

そしたらこのツールを「インストール」します。/usr/localとかじゃなくて自分のホームディレクトリに入れてくれますのでご安心を。
    > perl perlbrew install

一瞬で終わるので、今落としてきたファイルを消しておきます。もう使わないし。
    > rm  perlbrew

で、まずperlbrewを認識できるようにちょっと調整をします:
    # ~C~Q~B~B~D~B~B~C~A種~^~A~A~Y~B~G~H~F~A~B~B~A~A~I~A~H~A~K~A~U~A~D
    > echo 'source /home/daisuke/perl5/perlbrew/etc/bashrc' >> ~/.bashrc
    > source ~/.bashrc
    > perlbrew init

これで環境設定はOK。でもこのままではなんにもできないので、ここで使いたいperlのバージョンを指定してperlbrewにインストールさせます。こんな感じでやるだけで5.12.1をダウンロードし、コンパイルをしてくれます
    > perlbrew install perl-5.12.1

ここでトイレに行くとか、軽く掃除をするとか、用事を済ませてきて下さい。perlほど大きなプログラムをコンパイルするにはそれなりに時間がかかります。

コンパイルが失敗した場合はインストールログを見るといいでしょう。多分落ちてるとしてもどっかテストが一個こけてるとかだけだと思うので「まぁいいや」と思えるなら(コンパイルはやりなおしになってしまいますが)、-fをつけてもう一回インストールすると無理やりインストールしてくれます
    > perlbrew install -f perl-5.12.1

できたらこんな感じでスイッチ!次から"perl"って打つとperl 5.12.1を使えてます!
    > perlbrew switch perl-5.12.1
    > perl -v
    This is perl 5, version 12, subversion 1 (v5.12.1) built for darwin-2level

この後、違うバージョンのperlを入れたければ同じようにインストールしてからswitchすればおk!
    > perlbrew install perl-5.13.3
    > perlbrew switch perl-5.13.3 # ~V~K~Y~I~H~A

普段作業するときにはperl hoge.plとやれば良きにはからってもらえます。

スクリプトのshebangに書く場合は「どれでもいいからperlbrewの指定するperlを使ってくれよ!」という時と「確実にこのバージョンのperlを使ってくれ!」という場合がありますが、前者の場合はenvでこんな感じにすればいいですし、
    #/usr/bin/env perl

後者の場合は絶対パスを指定すればおkです。
    #!/home/username/perl5/perlbrew/perls/perl-5.12.1/bin/perl

パワーユーザー的にはこの仕組みの良い点はコンパイルオプションが違う、同一バージョンのPerlを混在させる、とかもできるところですね。例えばスレッド込みでコンパイルされたPerlを扱いたいなら以下のように-D(コンパイル時に渡すフラグ)を渡してやって、インストール時の名前を変えてやればOK!
    > perlbrew install perl-5.12.1 -as perl-5.12.1-threaded -D=useithreads
    > perlbrew switch perl-5.12.1-threaded

お気軽ユーザーにとっては、perl本体とモジュール群がそれぞれ別のディレクトリで管理されるので最後に「もういらね」状態になったらそのperlをrm -rfすれば全部一緒に消えてくれ、あんまり後で問題になる事がないってもグッド。やー、楽ちん!

追記(2011/4/30):最近のperlbrewではinstall-cpanmというコマンドがあり、これを使うとperlbrewと同じ場所にcpanmがインストールされます。これもやっておくと、インストールしたPerlごとにcpanmを入れる必要がなくなるのでさらに楽ちんです

   > perlbrew install-cpanm

さあ、これで新しいPerlをインストールできないから使えないとか言ってられませんよ!是非新しいPerlを使ってみてください。

カテゴリ

トラックバック(0)

このブログ記事に対するトラックバックURL: http://mt.endeworks.jp/cgi-bin/mt-tb.cgi/2500

コメントする

筆者

daisuke - a.k.a. "lestrrat", Perl hacker at Livedoor Inc, Japan Perl Association 代表理事

このブログ記事について

このページは、Dが2010年8月 2日 17:15に書いたブログ記事です。

ひとつ前のブログ記事は「Okayama.pmに行ってきました」です。

次のブログ記事は「「サフォーク 大地」は正直がっかりでした」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.1