ユーザー環境にPerlをインストールするユーザー環境にPerlをインストールするにはperlbrewというツールを使用します。システム標準のPerlを利用したくない場合や新しいバージョンのPerlを利用したい場合は便利です。perlbrewを使うと複数のバージョンのPerlの切り替えを行うことができます。perlbrewのインストール以下のコマンドを実行します。bashもしcurlコマンドがなければ、以下のコマンドを実行してみてください。shcpanから二つの手順でインストールすることもできます。init次にperlbrewのパスを通しましょう。perlbrewで用意されているbash用の設定ファイルを「~/.bash_profile」に追加します(bashの場合)。~/.bash_profileそして、シェルを立ち上げなおします。ユーザー環境へのPerlのインストールユーザー環境にPerlをインストールします。5.28.2のPerlをインストールしてみましょう。時間がかかるので待ちます(約30分程度)。perl-5.28.2インストールできない場合は、Perlのコンパイルに必要なツールが、まだインストールされていない可能性があります。以下のツールが必要になりますので、各環境に応じて、インストールしてください。makegccpatch試験を強制的に飛ばして強制的にインストールしたい場合は「-n」オプションを使用します。perl-5.28.2利用できるPerlの一覧を見てみましょう。perlbrewのlistコマンドを使用します。list以下のように利用できるPerlが表示されます。アスタリスクのあるものが現在利用しているPerlです。(5.8.8)Perlを切り替えるにはperlbrewのswitchコマンドを使用します。perl-5.28.2Perlのバージョンを実際に確認してみましょう。-v以下のように5.28.2のバージョンになっています。i686-linuxcpanmのインストールモジュールをインストールするのに便利なcpanmもインストールしておきましょう。install-cpanmこれで以下のコマンドでモジュールがインストールできるようになります。JSONモジュールは以下のディレクトリなどにインストールされます。/home/kimoto/perl5/perlbrew/perls/perl-5.28.2/lib/site_perl/5.28.2/元のPerlに戻す元のPerlに戻すには以下のようにします。offperlbrewで指定したバージョンのPerlをcrontabで使う方法perlbrewのはまりどころのひとつは、perlbrewで指定したバージョンのPerlがcronからは利用されないということでしょう。これはcronから実行するときは、シェルが起動されないので.bash_profileが読み込まれないことが原因です。perlbrewによる設定は、.bash_profileの中に記述したからですね。簡単な解決策は、crontabの中でPATHを、そのユーザーが持っている環境変数PATHの値に書き換えてあげることです。perlbrewをインストールしたユーザーで、PATH環境変数の値を表示します。PATHPATHを含んだ環境変数がいくつか表示されるので、PATHというものを探します。(ユーザー名がadminsの場合の例です。)PATH=/home/admins/perl5/perlbrew/bin:/home/admins/perl5/perlbrew/perls/perl-5.16.2/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/admins/bin以下のコマンドでcrontabを編集します。-eそして上記のPATHの値をcrontabの一番上に書き込みます。cronの設定が続く...これでcronが指定したバージョンのPerlを利用してくれるようになります。Perlスクリプトの一行目の記述Perlスクリプトの一行目の記述は以下のようenvコマンドを使った記述をしましょう。perlこうすると設定したPATHの値から自動的にperlを検出してくれます。この方法は、見てのとおり、PATHをベタ書きしますので、crontabの移植性がまったくないです。ユーザー名のadminsが直接埋め込まれていますし、perlのバージョン番号がそのまま記述されているので、perlbrewでバージョンを変更したときは、動かなくなります。この方法が一番よいと思います。その理由はcrontab内では、環境変数の変数展開ができないという制限があるので、うまく移植性を持たせることが難しいということが理由です。移植性を持たせると、記述量が多くなったり、追加のスクリプトが必要になったり、管理が煩雑になってしまいます。それとどんなにがんばっても、crontabって環境ごとに、何らかの差分があることがほとんどなので、移植性を保たせてもあんまりメリットがないということもあります。業務に役立つPerlログ解析など日本語を含むテキスト処理の実践!案内YouTubeでもっと簡単にプログラミングを学ぶならPerlゼミちゃんねるLinuxコマンドを学ぶならLinuxサーバー管理入門Webデザインを学ぶならWebデザイン入門Web開発を始めるななMojoliciousスタートアップブログを作るならGiblogプログラミングの勉強会ならPerl入学式お問合せはこちらPerlは、テキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。Linuxサーバー管理でのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意。Mojoliciousを使ったWebサービス開発も。Perlは、gitやopensslなどUnix/Linuxミドルウェアの支援ツールとして採用されています。