my @files; sub findFiles($) { my ($dir) = @_; my $dirhandle; opendir($dirhandle, $dir) || die "can't opendir $dir: $!"; foreach my $entry (readdir($dirhandle)) { if ($entry !~ m{^\.\.?$}) { my $absentry = $dir . '/' . $entry; if (-f $absentry) { push @files, $absentry; } elsif(-d $absentry) { findFiles($absentry); } } } closedir($dirhandle); }