#!/usr/bin/perl -w use strict; use constant MIN => 0; use constant MAX => 40000; my($low, $high, $mid) = (MIN, MAX); print "Think of a number between $low and $high\n"; while(1) { $mid = int(($low + $high) / 2); last if $low >= $high; print "How about $mid? Is it (l)ow, (h)igh or (c)orrect? : "; my $answer = lc(substr , 0, 1); $answer eq 'c' ? last : $answer eq 'l' ? $low = $mid + 1 : $answer eq 'h' ? $high = $mid - 1 : print "bad input\n"; } print "The number you are thinking of is $mid!\n";