chanakya has asked for the wisdom of the Perl Monks concerning the following question:
my @dirs2read = ("/tmp", "/u/files"); foreach my $sp_dir (@dirs2read) { opendir SP, $sp_dir or die "Cannot open $sp_dir for reading: $!"; my @files = map { $_->[1] } sort { $a->[0] <=> $b->[0]} map { [ stat("$sp_dir/$_")->ctime, $_] } grep { /\w/ && !/^TA\d{1,8}$/ && !/gz$/} readdir SP; closedir SP; }
Thanks for your time in advance.use File::Find; use Data::Dumper; my @directories = ("/u/files", "/tmp"); my @readfiles; File::Find::find({ preprocess => sub { sort { # Files sort before dirs (-f $a ? (-f $b ? $a cmp $b : -1 ) : (-f $b ? 1 : $a + cmp $b)) } @_ }, wanted => sub {push @readfiles, "$File::Find::dir/$_" +if (-f); } , postprocess => sub { rmdir $File::Find::dir }, }, @directories); print Dumper \@readfiles;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: File::Find preprocess and sort issues
by jwkrahn (Abbot) on Jul 24, 2009 at 14:52 UTC | |
|
Re: File::Find preprocess and sort issues
by Anonymous Monk on Jul 24, 2009 at 12:31 UTC | |
by chanakya (Friar) on Jul 24, 2009 at 12:50 UTC | |
by Anonymous Monk on Jul 24, 2009 at 12:56 UTC |