Warning: Use of "-s" without parentheses is ambiguous at test.pl line 19. Unterminated <> operator at test.pl line 19. #### #!usr/bin/perl use warnings; use strict; use Data::Dumper; use File::Slurp qw(read_dir); use File::Basename; my @files; my @directories = qw( dir/dir1 dir/dir2 ); my $min_size = 1024; #1K my $max_size = 10240; #10MB my $c; for my $d (@directories) { $c++; push @files , grep { -f && -s >= $min_size && -s <= $max_size "$d/$_" } read_dir($d); } foreach my $file(@files) { print "\n$file\n"; }