#!/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) { $_ =~ s/^(\.|\.\.)$//; if (-d $_) { push @dirs, $_; next; } # do stuff } } for(@dirs) { print " $_\n"; }