in reply to Is this the most elegant way to code directory lookup?
Three things that I would change:
I wouldn't read the filenames into an array, I'd read them one at a time.
while ($_ = readdir(INDIR)) { ... }
I'd use next to skip the loop for '.' and '..'.
while ($_ = readdir(INDIR)) { next if -d || $_ eq '.' || $_ eq '..'; ... }
Finally (and most importantly) using backticks for commands where you're not capturing the output is wasteful as Perl collects up all the output and returns it to you - only for you to throw it away. Better to use system in that case. Or to use Perl version of the command where they are available - like using move (from File::Copy instead of mv).
Update: One more thing I've just noticed.
unless (-d $srcdir && -d $destdir ) {die "Error: $!";}
Not sure why you're including the value of $! in that error message. It won't contain a value at that point.
"The first rule of Perl club is you do not talk about
Perl club."
-- Chip Salzenberg
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Is this the most elegant way to code directory lookup?
by johngg (Canon) on Sep 29, 2006 at 15:26 UTC | |
|
Backticks (Was: Re^2: Is this the most elegant way to code directory lookup?)
by LittleGreyCat (Scribe) on Oct 03, 2006 at 10:12 UTC |