#!/usr/bin/perl -w use strict; my @list = 1..10; print binary_search(\@list, 3); 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]) { @$aref = @$aref[++$mid..$#$aref]; binary_search($aref, $find); } else { @$aref = @$aref[0..--$mid]; binary_search($aref, $find); } } #### @$aref = @$aref[++$mid..$#$aref]; #### @$aref = @$aref[++$mid..-1];