Also, using the OO interfaces IO::Dir and IO::File may be helpful.
And, taking your code as it is and fixing it ...
sub readindirs { my ($dirname) = @_; opendir(NEWDIR, $dirname) or die $!"; my @newfiles = grep { $_ ne '.' and $_ ne '..' } readdir NEWDIR; closedir NEWDIR; foreach my $name (@newfiles) { if (-d $name) { readindirs($name); } else { parse_sub_routine($name); } } }
The problem you were having was that you were clobbering @newfiles because you weren't scoping it to each invocation of the subroutine. Next time, add use strict; to the top of your script and it will help.
------
We are the carpenters and bricklayers of the Information Age.
The idea is a little like C++ templates, except not quite so brain-meltingly complicated. -- TheDamian, Exegesis 6
... strings and arrays will suffice. As they are easily available as native data types in any sane language, ... - blokhead, speaking on evolutionary algorithms
Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.
In reply to Re: Navigating Dierctories Recursively
by dragonchild
in thread Navigating Dierctories Recursively
by cens
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |