my $cwd = getcwd; print "CWD:$cwd\n"; ## Get files from cwd my $res = _list_files($cwd); sub _list_files { my $dir = shift; my $files = shift; print "GETTING:$dir\n"; opendir(DIR, $dir) or die "Error opening: $dir\n"; while (my $fn = readdir(DIR)) { ## skip hidden next if $fn =~ /^\./; ## file, fullpath name my $file = $dir . "/" . $fn; print "FILE:$file\n"; ## add push(@{ $files }, $file); ## dir, decend if (-d $file) { print "DIR:$file\n"; ## sub-directory files $files = _list_files($file, $files); } } closedir(DIR); return $files; }