I would like to be able to call the sub like this:
my @dirs = parseDir("perl");
but recursively calling the sub to populate the same array is causing me problems. Any suggestions?
#!/usr/bin/perl
use strict;
my (@dirs,@files);
parseDir("perl");
foreach my $item (@dirs){
print ">>$item\n";
}
sub parseDir{
my $thisDir = shift;
opendir(F, "$thisDir") || die "Cannot opendir $thisDir: $!";
my @storage = readdir(F);
closedir(F);
foreach my $name (@storage) {
chomp $name;
if($name =~ /^\./){
next;
}
if( -d "$thisDir/$name" ){
#print "$thisDir/$name\n";
push(@dirs, "$thisDir/$name");
parseDir( "$thisDir/$name" );
}
else{
push(@files, "$thisDir/$name");
}
}
}
my @dirs = parseDir("perl");
but recursively calling the sub to populate the same array is causing me problems. Any suggestions?
#!/usr/bin/perl
use strict;
my (@dirs,@files);
parseDir("perl");
foreach my $item (@dirs){
print ">>$item\n";
}
sub parseDir{
my $thisDir = shift;
opendir(F, "$thisDir") || die "Cannot opendir $thisDir: $!";
my @storage = readdir(F);
closedir(F);
foreach my $name (@storage) {
chomp $name;
if($name =~ /^\./){
next;
}
if( -d "$thisDir/$name" ){
#print "$thisDir/$name\n";
push(@dirs, "$thisDir/$name");
parseDir( "$thisDir/$name" );
}
else{
push(@files, "$thisDir/$name");
}
}
}