use DirHandle; my $dh = new DirHandle("/path/to/dir") or die "Can't open /path/to/dir: $!"; while (my $entry = $dh->read()) { # here you can do either open FILE, "/path/to/dir/$entry" or next; # or like so -r "/path/to/dir/$entry" or next; # now, on to that file! } $dh->close();