It isn't the
goto that saves the copying. It's the use of
& without parentheses to call the function. As far as I can tell, the
goto is a useless relic.
Update: Ok, not entirely useless: if you want a routine not to return to where you called it from, goto is the way to do it. In other words, use it when you want to do weird control flow (which is what goto is all about). Example:
sub one {
print "In one\n";
goto &two;
print "never print this if you goto\n";
}
sub two {
print "In two\n";
}
one();
It's like
exec for the subroutine domain.
Caution: Contents may have been coded under pressure.