作者: Bunta
日時: 2006/11/11(12:54)
 まったく低レベルな上に、時代錯誤的な質問で申し訳ありません。

 モジュールを使えるようになりたいと思いました。まず、基本のき、である、
wildcard.pm です。

 まず、情報が揃っていて環境も揃っている、Jperl5で以下のように成功しました。
WindowsXPマシンにて。

---test.pl---
use Wildcard;                   #
#require "Wildcard.pl";         #Perl4用のつもりで.pm->.pl rename copy
for (@ARGV) { print $_,"\n"}
-------------

# 実行状況。やった、ワイルドカード展開ができる! 
# .plとJperl5は関連づけしてある。

C:\>test.pl *.txt
ABC.TXT
BLUMBLUB.TXT
etc.
etc.

 同じことを、 「#Perl4  用のつもり」 の行を上と入れ替えてやってみますと
「@INC に見つからない」と Jperl4 はいう。

 そこで、
>Jperl -e"print @INC;"(これはJperl5です)
 とすると、きちんと3カ所正しく(標準どおり)示してくれる。ところが、
>Jperl4 -e"print @INC;"(これはJperl4 for MS-DOS)
 とすると、何も出力がない。

 これは空というわけでしょうか。 どうやって、Jperl4 にモジュール(ライブ
ラリと呼ぶべきですか?  )の在処を知らせられるのでしょうか。  念のため、
Jperl4.exe と同じディレクトリに wildcard.pl を入れてやってみたのですが、
駄目でした。

 Jperl4というのは、
This is jperl, version 4.036 + 1.4(MSDOS, SJIS) Oct 31 1993
 という版なのですが。

 僕はできないことをやろうとはしてませんよねぇ…。(-o-; m(__)m
 古い話で恐縮ですが、ご教授いただければ幸いです。

文太

 追伸:ご存じだろうとも思いますが、wildcard.pmの中身は以下のように
なっています。ここでもuseを使っているばかりか、「呼んで」ます。あああ。
どうすればよいのでしょうか。「諦めなさい」以外の回答があるとよいのです
が…。

package Wildcard;
use File::DosGlob 'glob';
@ARGV = map {
                s!^(\w):([^\\/])!$1:\.\\$2! ; $_ ;
                /[*?]/ ? File::DosGlob::glob($_) : $_ } @ARGV;
1;