sub all_between { my ($min, $max ) = @_; if ( $min > $max ) { return; } my @array = (); my $i = $min + 1; while ($i < $max) { push @array, $i++; } return @array; } my @ar1 = all_between( 4, 10 ); # Gives (5,6,7,8,9) my @ar2 = all_between( 4, 5 ); # Gives () my @ar3 = all_between( 4, 3 ); # Gives undef print "\@ar1 is defined\n" if defined @ar1; print "\@ar2 is defined\n" if defined @ar2; print "\@ar3 is defined\n" if defined @ar3;