use strict; use warnings; use File::Find; my $dir = "d:\\Teszt"; finddepth(\&gotcha, $dir); sub gotcha { if ($dir eq $File::Find::dir){ print "same dir, skipping\n"; last; } else {$dir = $File::Find::dir;} if (-f) {print "$File::Find::name\n"; &process_files_in_subdir() } } sub process_files_in_subdir { ; #whatever }