@$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 ); }