@$aref = @$aref[++$mid..$#$aref];
...
@$aref = @$aref[0..--$mid];
####
sub binary_search {
my ($aref, $find) = @_;
my $mid;
$mid = int $#$aref / 2;
return 0 if $find == $aref->[$mid];
return 1 if !$#$aref;
if ($find > $aref->[$mid]) {
binary_search([ @$aref[++$mid..$#$aref] ], $find);
}
else {
binary_search([ @$aref[0..--$mid] ], $find);
}
}
####
sub binary_search {
my ($aref, $find) = @_;
my $mid = int $#$aref / 2;
return 0 unless $#$aref;
return 1 if $find == $aref->[$mid];
binary_search(
$find < $aref->[$mid]
? [ @$aref[ 0 .. --$mid ] ]
: [ @$aref[++$mid .. $#$aref] ]
, $find
);
}