作者: INABA HITOSHI
日時: 2010/2/25(02:34)
Zazelさん、藤岡さん、こんばんは
 
Zazelさんwrote:
> | exit system map {m/ $your_gap [ ] /oxms ? qq{"$_"} : $_} $^X,
> | "$filename.e", @ARGV;
> この行だけ見ても、Unix系だとダブルクォートで囲んだら動かないなど、
> MS-DOS系OSに依存した書き方がされています。他にも多重起動時の対策とか、
> パーミッションとか、テスト用スクリプトがDOS依存など、幾つもあります。

if (...DOS-like system...) {
    exit system map { } ...
}
else {
    exec $^X, "$filename.e", @ARGV;
}
 
のようにして試してみます。
 
多重起動時の対策は、大崎 博基さんの
 
排他制御(ファイルロック)をする
http://www.din.or.jp/~ohzaki/perl.htm#File_Lock
 
を参考にして考えてみます。
 
パーミッションはエスケープ前のスクリプトと同一の値をエスケープ後の
スクリプトにも付加しようと思います。
 
my $mode = (stat($filename))[2] & 0777;
chmod $mode, "$filename.e";
 
のように。
 
稲葉wrote:
>> use re 'eval'; はもともとは m// や s/// の中で (?{$foo=1})
>> のように変数を使うために使っていたのですが、今の Sjis.pm では
>> このやり方をしなくなっています。
 
ここまでは本当ですが、
 
>> なので実は use re 'eval'; はもう要らないのでした。
 
これは間違いでした。(?{code}) の外側でも $foo や @foo が記述されて
いると、なぜか "use re 'eval';" が必要なようです...簡単にはいきま
せんでした。
 
藤岡さんwrote:
> もう忘れていましたけど^^;)、@niftyの@homepageにはまったくライブラリは
> 準備されておらず、必要なものは自分ですべて準備する必要があります。
>> いろいろとライブラリも置いていましたが・・・
>> reの行は削除して、Ejis.pm関連で必要なものも置いてみましたが、まだダメ、
>> あっ、だめだ。Solaris用のライブラリが必要ですね。auto\Fcntl関係。
>> dllが入ってる。
 
use して使っているのは、
(1) strict
(2) vars
(3) Fcntl
(4) Symbol
(5) Carp
(6) FindBin
です。これらがさらに use しているモジュールがあります。全部なくすのは結構
難しいです(無理かもしれません)。ということは @nifty で使うのは無理っぽい。
 
# UNIX 環境として ubuntu 9.10 を準備しました。茶色いデスクトップが気に
# 入っています。
 
# いつも「スレッドの最初の発言」になってしまってすみません。
 
稲葉 準
  		 	   		  
_________________________________________________________________
今年こそ節約しよう!まずはネット代から。
http://campaign.live.jp/eaccess/Top/