opendir (D,'/home/www/'); while (defined(my $subdir = readdir D)) { open F, '/home/www/'.$subdir.'/logs/weekly' || do {warn "Couldnt open home/www/$subdir/logs/weekly: $!"; next}; while () { #your code } }