モジュールによるファイルの列挙

作成日: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手習い > モジュールによるファイルの列挙


MARUYAMA Satosi