sub Half { my $n = shift; my $SubBody = Power_Of_Two( $n ) ? "return \$_[$[] >> Log2( $n );" : "return int( \$_[$[] / $n );"; my $SubRef; eval "$SubRef = sub { $SubBody }"; return $SubRef; }