print $sh->ls("-l ./logs/ |grep -v "^d" |grep -v file1 | awk 'NR>1 { print \$9}' #### { my $dir = './logs'; opendir my $dh, $dir or die "Can't opendir '$dir': $!\n"; my @files = grep { ! -d "$dir/$_" and ! /file1/ } readdir $dh; print "$_\n" for @files; } __END__