How can I list all files in a directory using Perl? -
i use like
my $dir="/path/to/dir"; opendir(dir, $dir) or die "can't open $dir: $!"; @files = readdir dir; closedir dir; or use glob, anyway, need add line or 2 filter out . , .. quite annoying. how go common task?
i use glob method:
for $file (glob "$dir/*") { #do stuff $file } this works fine unless directory has lots of files in it. in cases have switch readdir in while loop (putting readdir in list context bad glob):
open $dh, $dir or die "could not open $dir: $!"; while (my $file = readdir $dh) { next if $file =~ /^[.]/; #do stuff $file } often though, if reading bunch of files in directory, want read them in recursive manner. in cases use file::find:
use file::find; find sub { return if /^[.]/; #do stuff $_ or $file::find::name }, $dir;
Comments
Post a Comment