2005/07/20

嫌なもの後日談

システム移行によって情報を取得する方法(概念)が様変りしたため、
管理情報を取得する内部モジュールが機能しなくなった事が原因だった。

じゃあ移行後のシステムで管理情報を取得するモジュールを作ってやれば良い。
どうせやるならここはとことん楽しんで作ろうじゃないか。とPerlで作りはじめたが、
スクリプト内で環境変数をセットする方法がわからず挫折。弱。

結局Bourne-Shellスクリプトで実装した。
シェルスクリプトで環境変数を設定してからPerlスクリプトを呼ぶという
2段がまえでも確かに上記問題は解決するが、そんな無駄な事は嫌。
普段使っているX40にperldocを仕込んでおかなかった俺の馬鹿。
偉そうな事言ってても参考書無しの俺の腕なんてそんなもん。

Perlのポケットサイズリファレンスを買って常に持ち歩こうと思い、
書店に行ったらこんな本を見つけた。思わず買ってしまった。
これで翔泳社の辞典シリーズはDebian辞典に続いて2冊持っている事になる。
ちょっといいかも。

5 Comments:

Anonymous 匿名 said...

うる覚えですが、perlの場合環境変数はENV連想配列に格納されているのではなかったかな?
つまり連想配列に値を突っ込んであげれば良いことになるんだけど。。。

環境変数に設定したいという要望から想像するに、perlから別プロセスを起動して、起動されたプロセスが環境変数を必要としているということですかねぇ。。。

水曜日, 7月 20, 2005 2:48:00 午後  
Blogger kazufuruk said...

ご堅察のとおりです。別プロセスを内部で起動しその標準出力を使用するのですが、その別プロセスが検索パスを環境変数から取得するため、どうしても環境変数をセットしなければなりませんでした。webを見ようかとも思ったのですが、リリース作業中の片手間作業だったため有線LANを落してダイヤルアップするわけにも行かず。帰宅後apt-get install perl-doc を行ったのは言うまでもありません(笑)。

%ENVですか。。。何かで使ったような気がします。とっさの時って出て来ないもんですね。(T_T)

水曜日, 7月 20, 2005 8:07:00 午後  
Blogger sempreff said...

s/うる/うろ/
s/堅察/賢察/
じゃないだろうか。

は、おいといて、
perl で CGI 書く時には POST データを貰うために
read(STDIN,$buf,$ENV{'CONTENT_LENGTH'});
なんて書き方をしますね。

別プロセスを呼び出す時も、
env LANG=C /some/where/command
みたいな呼び方じゃだめでせうか。
↑これがうまくいくなら、%ENV の存在は知らなくてもなんとかなる、と。

TIMTOWTDI ってことで。:-)

水曜日, 7月 20, 2005 8:22:00 午後  
Blogger kazufuruk said...

おぉ!ツッコミ&ご助言ありがとうございます。
こういうやり方もありますね。勉強になります。

ちなみにじぶんも
s/TIMTOWTDI/TMTOWTDI/
とかツッコんでみたりして。

-- それには何通りもやり方がある --

水曜日, 7月 20, 2005 9:16:00 午後  
Blogger sempreff said...

is は省略するのが本流なのかしら。
There Is More Than One Way To Di It
→ TIMTOWTDI
と思ってました。

Google 先生に聞いてみたら、
TMTOWTDI ... 29600 件ヒット
TIMTOWTDI ... 8100 件ヒット
しかも、「もしかして」を出されてしまって完敗でした(笑)

水曜日, 7月 20, 2005 11:04:00 午後  

コメントを投稿

<< Home