namazu-ml(avocado)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: perl conference



清水@住友林業です。

# いやー、patch を良く見てなかった & perl の特殊変数に疎いのがバレバレ

Wed, 22 Jul 1998 19:20:47 +0900 に、
Ken-ichi Hirose <hirose@xxxxxxxxxxxxxxxxxxxx> さんは書きました ;

> >私の配布している mknmz は、OS/2 の特殊機能(外部コマンドプロセッサの
> >呼び出し機能)を経由して perl を起動しているため、$0 の内容をどうい
> >じっても、たぶんシステムには影響ないんですよね。

すんません。 patch の行の後半の $1 を見落としてました (^^;


私 >ところで、mknmz の全体をマジメにトレースしてないので、$0 の内容を変更
私 >する目的がよく理解できないのですが、これ、mknmz の動作がどう変わるの
私 >でしょうか?
> 
> これは
> 
> if ($LIBDIR !~ /^[A-Z]:/i) {
> #$LIBDIR の先頭部分に a: 等の drive letter の指定が無ければ、
> 	$0 =~ m#^([A-Z]:)(/|\\)#i;
> #mknmz のおいてある directory の drive letter を取得して、
> 	$LIBDIR = $1 . $LIBDIR;
> #$LIBDIR の最初にくっつける。
> }
> 
> と言う動作ですので、$0 は変わらないと思っています。

というか、OS/2 の perl の動作だと、$0 をどういじっても、ps 等で見ると
 perl.exe とだけ表示されるのですよね。そういうわけで、行頭の$0 への代
入だけを見て、「OS/2 には関係ないやん」と判断して後半の $1 を読み飛ば
していたという... どうもスンマセン。

# 経験不足で、$1,$2 ... って使ったことがないもので (^^;

で、

私 >さて、patch を適用しない OS/2 版の mknmz の LIBDIR に関する動作ですが、
私 >1. $LIBDIR にドライブレターを含む path を指定すれば確実に大丈夫。
私 >2. $LIBDIR にドライブレターが含まれていなくても、mknmz.cmd の存在する
私 >   ドライブの LIBDIR を参照するので、ほとんどの場合には大丈夫
私 >   (ふつー、/usr/local/bin と /usr/local/namazu/lib は同一)
> 
> 動作的には同じ事をやっているのですね。:-)
>

もう一度確認したところ、この 2. は嘘でした。スンマセン。

  f:\os2\apps\mknmz.cmd(patch 適用なし)
  h;\bin\mknmz.cmd (広瀬さんの patch 適用済み)
  h:\usr\local\bin\mknmz.cmd(patch 適用なし)

を作ってテストしたのですが、OS/2 版では mknmz.cmd の先頭で

 extproc  perl -Sx

とやっています。(この後に、#!/usr/bin/perl 以下の行が続く)

で、OS/2の perl をこの方法で起動すると、perl が起動された後で、呼び
出した mknmz.cmd を再読み込みしてスクリプトが流れると思っていたので
すが、実は、呼び出した mknmz.cmd ではなく、環境変数 path で先に指定
された h:¥bin にある、mknmz.cmd を必ず再読み込みしていました。

# これが、OS/2 の外部コマンドプロセッサ起動というワザです。

つまり、上の3つのどのスクリプトを流しても、常に patch の当たったス
クリプトが動いており、LIBDIR にドライブレターが補完されていました。

で、再実験の結論として、

 私 ># つまり、OS/2 の場合、とりあえず patch は不要だと思ってます。

は大嘘でした。スンマセン m(__)m


> いや、次のリリースで高林さんに反映して頂きたいので。。。 ^^;;;;;

OS/2 でもそうでした。私もよろしくお願いします > 高林さん。

ではでは。

end
--
  住友林業株式会社  情報システム部   清水 和佳
 
  TEL: +81-3-5322-6672  FAX: +81-3-5322-6658  Niftyserve: XLW01034
  e-mail: <kshimz@xxxxxxxxx>