うにっくす ちっぷす

最終更新日 [08Aug2000]
----------------------------------------

psmulti が Perl5 で使えない
Perl4 の時に使ってた psmult が、Perl を 5にした途端、動かなくなりました。 かといって、そのためだけに Perl4 も共存しておくってのも何か変なので、 ちょいと探ってみました。… 何のことはない、想像通り 4Perlと5Perlで、若干文法が変わったため…というより、 5Perlは厳しくなって、4Perlのいい加減な書き方が通らなくなったからなのです。
  1. ARGV な配列を使用する際には正しく「@ARGV」と記述
  2. 連想配列名を @DocExport で持ってきて foreach で回して、
    eval "\$$_{\"$File\"}" することで、$NoDecor{"$File"} の値を $value に放り込もうとしてるところが、どうもうまくいってない様なので、 ベタ(ああっ美しくない…(号泣))に書き直した
だけです。 必要に迫られて ad-hoc な修正を施しただけです。 ホントにちゃんと動くかどうかはテストしてません(汗)。 …まぁ psmulti 自体ももう古い Perl script なのですが。 全部書き直す勇気(と時間)はないし。 動作報告や更なる修正とかお待ちしてます。
[22Jul2000] あ、なんかこれでは動かない気が。手元の作業中のモノと どっか違う(汗)。ちょっと待ってて下さいね
[08Aug2000] 直してみました。これでどーだ。
一応動くはずです。…んでも元ソース自体、結構手を入れないと美しくないかも。 ARGV で引数から、オプションと作業するべきファイル名を取得するのですが、 オプション用に切る連想配列 $ほげほげ{$File} = なんちゃら; の方が 先のために、$File に入るべきファイル名が default の "Default" に なってしまう…とか(汗)。 で、そのまま別ルーチンに渡して、 $ほげほげ{$File} の値に従って判別があると言う…(大汗)。 今までうまく動いてたのは、その値を取得する際に、 $ほげほげ{$File} の有無を見たあと、$ほげほげ{Default} の有無も判別して たためになんとか引っかかってた、って感じでしょうか。 処理するファイルが複数の場合も考慮しての coding だったのかもしれませんが、 どうも変なのかも。根本的に修正したほうがいいのですが、他にも色々と 差し支えがあるような気がするので、単に「Perl5 でも動く」レベルに 抑えておきますです。 …オプション -o で output ファイルが指定出来る…とかマニュアルに 載ってるんですが、判別はあるものの、その部分の coding がなかったり するしぃ(苦笑)。
→psmulti-1.0-perl5.patch (gzで1709byte。展開して 11637byte) を get する

----------------------------------------
うにっくす ちっぷす 一覧 index へ戻る
----------------------------------------

はやし はるひさ hayashi あっとまーく laic.u-hyogo.学術.日本
Home