use strict; use warnings; use Data::Dump qw/pp/; my $path="/tmp"; opendir ( DIR, $path ) || die "Error in opening dir $path\n"; my (@file,@dir); while (my $filename=readdir(DIR)) { next if ($filename =~ m/^\./); if (-f $filename) { push(@file,$filename); # print "\n"; } elsif (-d $filename){ push(@dir,$filename); # print "\n"; } } pp \@file,\@dir;