sub getFiles { my %list; my ($dir, $min_size) = @_; die "$dir is not a directory.\n" unless -d $dir; opendir my $dir_handle, $dir || die "Cannot open directory $dir: $!"; foreach (grep -f, readdir $dir_handle) { my $size = (stat)[7]; $list{$_} = $size if $size >= $min_size; } die "No files in $dir\n" unless keys %list; return %list; }