in reply to recursive sub
Anonymous,
The following function seems to fit your description
The following function seems to fit your description
# recursively operate on files use DirHandle; sub go_in { my $dir = shift; # -- this just flips the toothpicks, in case # we're in windows. It's not really necessary. $dir =~ tr/\\/\//; # -- and this just adds a trailing slash, for # concatenating later. if ($dir !~ m/\/$/){ $dir .= '/'; } my $dh = new DirHandle ($dir); # or die, I suppose. return unless $dh; while ( defined( my $item = $dh->read )) { next if $item =~ m/\.$/; $item = $dir.$item; # paranoid about symlinks. next if -l $item; # -- call recursively, but not forever: # (discard visited directories) if ( -d $item ){ go_in($item); next; } # -- operate on files here -- # } }
DirHandle is a very simple module, suitable for simple tasks.
updated: edited out some playful peculiarities.
mkmcconn
In Section
Seekers of Perl Wisdom