sub merge {
my ( $data, $unmerge ) = @_;
while ( $some_condition ) {
# big loop, no embedded loops
$count = $unmerge ? $count1 + $count2 : $count1 - $count 2;
}
}
As you say a preprocessor of some description could optimise the flag away, depending on the call. eval might well have allowed perl to optimise the code getting rid of the repeated if checks that will either always be true or always be false. But by the time I had added an AUTOLOAD the code would have been a lot less transparent and physically almost as long. I had not thought about using eval to delay compilation and effectively allow you to stub the functions and get them to compile more efficiently. I may give it a benchmark when I have a chance.
|