http://qs1969.pair.com?node_id=122045


in reply to recursive sub

Anonymous,
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