sub recurse { my $folder = shift; my $dir; if(opendir($dir, $folder)) # who needs error checking anyways? me! { while(defined(my $entry = readdir($dir))) { next if $entry =~ /^\.\.?$/; # avoiding endless loop :) if( -d "$folder/$entry" ){ recurse("$folder/$entry"); } else { #regular file } } closedir($dir); } }