#!/usr/bin/perl -w use strict; my @dirs = ( # omit trailing slash '/var/www', '/home/me', '/usr/games', ); for my $dir (@dirs) { opendir DIR, $dir or warn "Error opening $dir:\n$!"; my @infiles = (readdir DIR) or warn "Error reading $dir:\n$!"; closedir DIR or warn "Error closing $dir:\n$!"; for(@infiles) { $_ =~ m/^\.{1,2}$/ and next; my $d = "$dir/$_"; if (-d $d) { push @dirs, $d; next; } # do stuff } } for(@dirs) { print " $_\n"; }