Active Perl でワイルドカードを利用する
UNIX やLinux ではコマンドラインから Perl を実行する時、入力するファイル名に「*(ワイルドカード)」を使用することができます。
例えばあるディレクトリに10のHTMLファイルがあり、それを全て順番に読み込みたい場合、「*.html」と指定するだけで、ファイル名をひとつずつ記述しなくても全てのHTMLファイルを対象とすることができます。
ところが ActivePerl でワイルドカード指定をしたところ、ワイルドカード「*」がそのままファイル名になるだけで全く読み込まれませんでした。googleで検索してみたところ、ActivePerl の仕様でMS-DOSのワイルドカードに対応していない、つまりファイル名として展開されないようです。
ですが利用できる方法も同時にみつかりましたので、ActivePerl でワイルドカードが利用する方法をご紹介します(備忘録)。
1.Wildcard.pm をダウンロード
下記のサイトより Wildcard.pm をダウンロードします。
2.Wildcard.pm の配置
ダウンロードしたファイルをPerlライブラリディレクトリに配置します。Perl のパスが /usr/bin/perl であれば、配置ディレクトリは、
- C:\usr\lib
になります(Cドライブにインストールされている場合)。
3.スクリプトに use 関数を追加
実行するPerlスクリプトの先頭に
use Wildcard;
を追加します。
以上です。これでワイルドカードを指定するとファイル名として展開されるようになります。
参考サイトは下記です。ありがとうございました。
ちなみにこのページの最後に書いてある文章には軽く斬られました(笑)。
~(略)~もっと上手な「Perl使い」の人たちは、ワイルドカード自体あまり使いません。Perl内に用意された別の方法を使ってもっと柔軟に複数ファイルを扱うことが多いので、この仕様はそれほど問題にはならないのです。~(略)~
- ビルド(コンパイル)で「分離記号を欠いています」となる場合の対処
- プログラムの再帰呼び出しのまとめ
- プログラムの「アウトデント」について
- JavaとJavaScriptの違いのまとめ
- PHPやPerlで変数の記号に「$」が使われる理由
- ImageMagick と Image::Magick(PerlMagick) のバージョン対応
- PHP5のインストール
- J2SE 5.0 発表
≫ Perlのパスとは? from ネットビジネス用CGI Perl HTML Javascriptの情報サイト
Perlのパスとは、CGIのプログラムファイルを開いたとき、一行目に書かれている下記のような記号のことです。
#!/usr/bin... [続きを読む]
≫ Windowsのperlで@ARGVのワイルドカード展開 from ひろ式めもちょう
よく忘れるので写経。 #!/usr/bin/perl use strict; my @files; # Extract Windows' w... [続きを読む]