モジュールによるファイルの列挙 | 作成日:2000-11-05 最終更新日: |
私の考えたことは、 「Macintosh の Perl、すなわち Macperl では、opendir, readdir, closedir の各関数が使えないのではないか」ということだった。 では代替手段があるのか。
perl5 になって、モジュールという名前で呼ばれるパッケージ提供方法ができたこと、 これによるライブラリが充実してきたことは知っていた。 そこで、Macperl からディレクトリを扱うモジュールがないか調べてみた。 perldocを使って調べてみたら、DirHandle.pm という名前のモジュールがあったのでこれを使ってみることにした。
# renovigo04.pl
# 2000-11-03
# MARUYAMA Satosi All Rights Reserved.
#
use DirHandle;
$_ = "tako";
chdir $_;
$d = new DirHandle ":";
if (defined $d) {
while (defined($_ = $d->read)) { print("$_\n"); }
undef $d;
}
これを実行してみたところ、tako 直下のディレクトリとファイルが表示された。 このモジュールを使って前のスクリプトを書き直してもよかったのだろう。 しかし、このモジュールは使わないことにした。 というのは、もともとこのモジュールは「名前空間の汚染を防ぐだけがとりえ」と英語で書いてあって、 この書き方がちょっと投げやりにも見えたからだ。 また、このヘルプを見て、どうやら前のスクリプトが動かなかった原因がこの":"にあったのだろうと想像でき、 事実その通りだったことが原因である。
まりんきょ学問所 > perl手習い > モジュールによるファイルの列挙