Jeff Westman wrotenews:[EMAIL PROTECTED]Hi,
I've never liked "recursion" but of course there are times where it is needed.
I'm not sure I would say recursion is "needed", but it sure makes some things simpler. I've never met a recursive function I couldn't rewrite iteratively though, often with some pain, of course.
Hi Jeff.
File::Find would do it for you, but the revursion is very simple really:
use strict; use warnings;
printdir('/usr');
sub printdir {
my $dir = shift;
opendir DIR, $dir or die $!; my @dirs = grep /[^.]/, readdir DIR; closedir DIR;
foreach (map "$dir/$_", @dirs) { if (-d) { printdir($_); } elsif (-f _) { print $_, "\n"; } } }
# or iteratively...
sub printdir { my @dirs = (shift); while (@dirs) { my $dir = shift @dirs;
opendir DIR, $dir or die "Directory error: $!"; my @new_dirs = grep /^[^.]/, readdir DIR; closedir DIR; foreach (map "$dir/$_",@new_dirs) { if (-d) { push @dirs, $_; } elsif (-f _) { print "$_\n"; } } } }
James
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]