くれすのPerl日記 このページをアンテナに追加 RSSフィード

この日記の方針。

  1. この日記では、超初心者向けの内容は取り扱っておりません。モジュールの利用など、実践的な内容が中心となります。
  2. ここに貼られるソースは、基本的にそのままでは動かないものばかりです。各自の責任でご利用ください。
  3. 内容が間違っていることがあります。その際はご指摘いただけるとありがたいです。「検証してみたら違う結果が出た」などの報告も大歓迎です。
  4. perl -e die

2006-08-26 (Sat)昨日の続き

[] ローカルインストールしたライブラリパスを通す 12:03  ローカルインストールしたライブラリにパスを通す - くれすのPerl日記 を含むブックマーク はてなブックマーク -  ローカルインストールしたライブラリにパスを通す - くれすのPerl日記  ローカルインストールしたライブラリにパスを通す - くれすのPerl日記 のブックマークコメント

昨日の続き。弊社のトッププログラマの方と相談してきた。

use lib qw(/path/to/lib)

やっぱりこれかあ。。。

複数のCGIから共通の設定スクリプトを読んでいたりするとやりやすい。1個書き換えれば済むんだから。

/usr/bin/perl -I/path/to/lib

実行時の引数にいれてしまう方法。特定のCGIだけで特殊なモジュールを使いたい場合はこれも可。use lib qw(/path/to/lib) とあまり変わらないような。

ラッパーにしちゃう

↑の応用。以下のようなシェルスクリプトを書く。

#!/bin/sh
exec /usr/bin/perl -I/path/to/lib $*

これを、~/bin/perl あたりにでも保存。パーミッションは0755*1

# シェルの特殊変数とかも書いているので、FreeBSD日記(g:freebsd:id:Cress)に書けばよかったなあ、なんて。

で、CGIの冒頭には

#!/home/cre/bin/perl

とか書いてやると。


やっぱり一筋縄では行かないなあ。。。

どうでもいい追記

マイブーム」って死語だったんだ・・・ちょっとショック。

年がバレる。

*1:で良いと思う。読まれる分には問題ないし。パーミッションは4桁(NOT 八進数)で書くのがマイブームです。

TransFreeBSDTransFreeBSD2006/08/26 21:26私の場合は.cshrcでPERL5LIB設定して使ってます。
CGIの場合はuse lib使ってますが、.htaccessでSetEnv使うのもありかも知れません。

CressCress2006/08/27 00:38そういえば、TransFreeBSDさんもPerl屋でしたね。
とりあえず、シェル実行用に.bash_profileには入れておきました。CGI実行時は、引数に入れてしまう手もあったのですが、冒頭の行が無駄に長くなって「うーん」だったので、結局use libに落ち着きました。さくらインターネットはSetEnvダメっぽいですね。。。
この問題は結構多くの方がハマるようです。それも中上級者が。。。CGI実行時に環境変数が上書きされてしまうというのはあまり知られていないようです。

トラックバック - http://perl.g.hatena.ne.jp/Cress/20060826