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();