while ( my $dir = shift @ARGV ) { my $dh = new DirHandle $dir; if ( defined($dh) ) { $dir =~ s/\/$//; # Here, for example... while ( defined($_ = $dh->read) ) { if ( $_ =~ /(\.csv)$/ ) { push @files, "$dir/$_"; } } } }