in reply to RE: I don't use glob, I use readdir
in thread Getting a List of Files Via Glob
In your code, you donīt need to re-read the directory to get
at the files in the directory - although it would be difficult
to "compute" the difference of the array elegantly
(well, difficult to me at least). I mostly use the
following way, intermixing files and directories :
# Untested code - use at your own risk sub handledirectory { my ($directory) = @_; my ($entry, @direntries); opendir( DIR, $directory ) or die "Canīt read $directory : $!\n"; @direntries = readdir( DIR ) or die "Error reading $directory : $! +\n"; closedir DIR; foreach $entry, @direntries { # File::Spec gives us cross-platform path utilities # and comes with every Perl standard distribution require File::Spec; my $fullpath; # skip current and parent directory entries next if $entry =~ /^\.\.?$/; $fullpath = File::Spec->catfile( $directory, $entry ); if (-d $fullpath ) { &handledirectory($fullpath); } elsif ( -f $fullpath ) { # This second call to stat() (implicit in the "-f") # could be done away by using some other short # variable that does caching, but that would maybe # confuse the readers ... ... do stuff ... } else { # something strange ... }; }
|
---|
Replies are listed 'Best First'. | |
---|---|
RE: Descending through directories
by t0mas (Priest) on May 30, 2000 at 17:27 UTC | |
by Corion (Patriarch) on May 30, 2000 at 19:54 UTC | |
by t0mas (Priest) on Jun 02, 2000 at 00:20 UTC | |
by Corion (Patriarch) on Jun 02, 2000 at 11:58 UTC | |
by t0mas (Priest) on Jun 02, 2000 at 12:22 UTC | |
by Corion (Patriarch) on Jun 04, 2000 at 05:13 UTC | |
by t0mas (Priest) on Jun 04, 2000 at 12:35 UTC | |
by Corion (Patriarch) on Jun 02, 2000 at 01:45 UTC | |
by t0mas (Priest) on Jun 02, 2000 at 10:51 UTC | |
by softworkz (Monk) on May 29, 2001 at 17:04 UTC | |
by Corion (Patriarch) on Jun 02, 2000 at 01:46 UTC | |
by t0mas (Priest) on May 31, 2000 at 10:22 UTC |
In Section
Seekers of Perl Wisdom