note
tadman
I'd never seen the <CODE>goto &LABEL</CODE> format either, so this is quite interesting. This ability to do with functions what [exec] does with processes is certainly remarkable, but <I>why</I> it was called "goto" is not entirely clear. Some
people, myself included, loathe that particular four letter word.
<BR>
<BR>
Just for the sake of clarity, it is probably best to use the [return] method you suggest.
<BR>
<BR>
As a note, if you find this sort of thing cropping up in nine different places, maybe you should switch to an OO framework. Override the <CODE>edit</CODE> method for <CODE>Product::Office</CODE> which <CODE>@ISA Product</CODE>:
<BLOCKQUOTE><CODE>my $product = new Product;
$product->edit(); # Same as edit_product
my $office_product = new Product::Office;
$office_product->edit(); # Same as edit_product_office
</CODE></BLOCKQUOTE>
I've seen some very clever uses of [goto] in extremely optimized code, where backing out of a pile of loops is just too costly, but this is very rare. Besides, if you were concerned about ultimate performance, you wouldn't be using Perl anyway.
129788
129788