use strict ; use warnings ; my @directories = qw( /files1 /files2) ; my $min_size = 1024 ; my $max_size = 1048576 ; #1MB my @small_files ; my @big_files ; for my $dir (@directories) { for my $file (read_dir( $dir, prefix => 1 )) { next if (! -f $file || -s $file < $min_size) ; if (-s $file <= $max_size} { push(@small_files, $file) } else { push(@big_files, $file) ; } } }