Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: What's the best way to make my script execute different sections without using goto?

by revdiablo (Prior)
on Feb 24, 2009 at 21:03 UTC ( #746101=note: print w/ replies, xml ) Need Help??


in reply to What's the best way to make my script execute different sections without using goto?

I would use a dispatch table with a bunch of subroutines, one for each action. The dispatch table makes it easy to use the command line argument to call the proper bit of code. Simple example:

my %ACTION_NAMED = define_actions(); my $action = shift; # First argument my @args = @ARGV; # Remaining arguments if (exists $ACTION_NAMED{$action}) { $ACTION_NAMED{$action}->(@args); } else { $ACTION_NAMED{_default_}->(@args); } sub define_actions { return ( action1 => \&action1, action2 => \&action2, _default_ => \&usage, ); } sub action1 { ... } sub action2 { ... } sub usage { ... }


Comment on Re: What's the best way to make my script execute different sections without using goto?
Download Code
Replies are listed 'Best First'.
Re^2: What's the best way to make my script execute different sections without using goto?
by gctaylor1 (Hermit) on Feb 25, 2009 at 00:48 UTC
    I'm going to go read about dispatch tables

    Thank-you for your time and advice.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (17)
As of 2015-07-31 20:47 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 (282 votes), past polls