my $dir = '/var/log/cr_user'; opendir( my $dh, $dir ) or die "failed opening directory $dir: $!"; my @files = grep { ! /^\./ } readdir( $dh ); # skips dirs . and .. and all dotfiles # faster but less readable would be something like grep { substr( $_, 0, 1 ) ne '.' ) }