Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re (tilly) 1: Would you use 'goto' here?

by tilly (Archbishop)
on Dec 06, 2001 at 20:53 UTC ( #129986=note: print w/ replies, xml ) Need Help??


in reply to Would you use 'goto' here?

No, I would not.

It sounds like you have a top-level dispatch table, but (like a tree) you have a lower-level set of dispatches that need to happen on some nodes on specialized information. And what you are doing is handling special cases with a goto which will make it harder later to figure out, "How did I get here?" so that some subroutines can do double-duty.

Instead I would operate as follows:

sub dispatch_edit_product { my $query = $_[0]; if ($query->param("officeID")) { edit_office_product(@_); } else { edit_generic_product(@_); } } sub edit_generic_product { my ( $query, $db, $mod, $sec ) = @_; # ... } sub edit_office_product { # ... }
And now you leave complete call information for your debugging routine to report, and every function in the call stack makes perfect sense.


Comment on Re (tilly) 1: Would you use 'goto' here?
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://129986]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (7)
As of 2015-07-05 07:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (60 votes), past polls