#! perl -slw use strict; sub even { $_[ 0 ]-- and goto &odd; 1; } sub odd { $_[ 0 ]-- and goto &even; 0 } while( my $i = int rand 1000000 ) { print "$i is ", odd( $i ) ? 'odd' : 'even'; } __END__ P:\test>mutrec2.pl 535003 is odd 775573 is odd 663116 is even 945678 is even 443572 is even 869659 is odd #### sub odd { $_[ 0 ] & 1 } sub even { !odd( $_[ 0 ] }