use warnings; use strict; use bytes; use Benchmark; #**************************Define the variables************************************ my @binarysearcharray=('1','2','3','4','5'); my $binarysearchkey=4; sub binarysearch{ my ($array,$key)=@_; my @array=@$array; my ($low,$high) = (0,scalar(@$array)); # computes the length of the array and gives it to $high while($low <= $high){ my $mid= int(($low+$high)/2); print "The New mid is : $mid\n"; if($array[$mid] < $key){ $low = $mid + 1; print " Calculating Lower Bound\n"; } elsif($array[$mid] == $key) { print "Match found at position $array[$mid]\n"; last; } else #($array[$high] > $key) { $high=$mid-1; print "Calculating Upper Bound\n"; } } }