sub getFileSize { my( $fileName )= @_; return -s $fileName; } #### sub getFileSize { my( $fileName )= @_; my $size= -s $fileName; if( ! defined $size ) { return; # Return an empty list to indication "failure" } return $size; } #### my $fileName= getFileName(); my @size; if( @size= getFileSize($fileName) ) { print "The file, $fileName, has a size of @size bytes.\n"; } else { print "Can't determine file size for $fileName: $!\n"; } #### my %sizes= ( $inputFile => getFileSize($inputFile), $controlFile => getFileSize($controlFile), ); #### my %object= ( InputFile => $inputFileName, InputSize => getFileSize($inputFileName), ControlFile => $controlFileName, ControlSize => getFileSize($controlFileName), ); return bless \%object; #### my %sizes= ( $inputFile => $controlFile, ); # and my %object= ( InputFile => $inputFileName, InputSize => "ControlFile", $controlFileName => "ControlSize", ); return bless \%object; #### my %sizes= ( $inputFile => scalar -s $inputFile, $controlFile => scalar -s $controlFile, ); #### my @files= getFileNames(); my %sizes= map { $_ => getFileSize($_) } @files; # or my %sizes; @sizes{@files}= map getFileSize($_), @files; #### my @files= getFileNames(); my @sizes; for my $fileName ( @files ) { push @sizes, getFileSize( $fileName ); } #### sub missingIsSmallest { my( $x, $y )= @_; if( ! defined $x ) { if( ! defined $y ) { return 0; } else { return -1; } } elsif( ! defined $x ) { return 1; } else { return $x <=> $y; } } my @files= sort { missingIsSmallest( getFileSize($a), getFileSize($b) ) } getFileNames(); #### reportFile( $file, getFileSize($file), "Financials" ); # or reportFile( FileName => $file, FileSize => getFileSize($file), Description => "Financials", );