use overload; BEGIN { overload::constant ( integer => sub { return inf if($_[1]==3); $_[1]; } ); } for ($x=0; $x<3; ++$x) { print "$x,"; last if($x>10);}