sub recurse_tree { my @dirs = @_; my @files; for my $dir ( @dirs ) { opendir DIR, $dir or error("Can't open $dir\n"); while ( my $file = readdir DIR ) { next if $file eq '.' or $file eq '..'; next if -l "$dir/$file"; push @dirs, "$dir/$file" if -d "$dir/$file"; push @files, "$dir/$file" if -f "$dir/$file"; } closedir DIR; } return \@dirs, \@files; }