私はPerlのFile::Find
モジュールを見て、次の方法で試しました。
#!/usr/bin/perl
use warnings;
use strict;
use File::Find;
find({wanted => \&listfiles,
no_chdir => 1}, ".");
sub listfiles{
print $File::Find::name,"\n";
}
これを実行すると、次の出力が得られます。
Noob@Noob:~/tmp$ perl test.pl
.
./test.txt
./test.pl
./test1.txt
./hello
./hello/temp.txt
今、私はno_chdir=>1
、ディレクトリに遭遇した場合にディレクトリに入らないように設定することで、コードを作成することを考えていました。しかし、出力は、私のコードがhello
ディレクトリに入り、そのファイルをリストしていることを明確に示しています。
では、どのようにコードを変更して、ls
どのディレクトリにも入らないように動作させるにはどうすればよいですか。また./
、ファイル/ディレクトリ名の前に表示されますが、削除できますか?
私はPerl5.14を使用しています。