Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: passing arguments in a dispatch table

by abstracts (Hermit)
on Apr 28, 2002 at 02:41 UTC ( [id://162591]=note: print w/replies, xml ) Need Help??


in reply to passing arguments in a dispatch table

Here is an example of how to pass args to subs in a dispatch table. I didn't see you pass any args in your example.
my $dispatch = { add => sub { return $_[0] + $_[1] }, mul => sub { return $_[0] * $_[1] }, div => sub { return $_[0] / $_[1] } }; print "2 + 3 = " . $dispatch->{add}->(2,3) . "\n"; print "2 * 3 = " . $dispatch->{mul}->(2,3) . "\n"; print "2 / 3 = " . $dispatch->{div}->(2,3) . "\n"; __END__ 2 + 3 = 5 2 * 3 = 6 2 / 3 = 0.666666666666667

Replies are listed 'Best First'.
Re: Re: passing arguments in a dispatch table
by CharlesClarkson (Curate) on Apr 28, 2002 at 06:19 UTC

    You misunderstand. I was not trying to pass arguments after the dispatch table was defined. I was trying to pass arguments predefined in the dispatch table. In the example I gave $fruit was the argument. If I use \&add_entry( $fruit ), perl will run add_entry( $fruit ) immediately and return a reference to it's return. But $fruit might change before add_entry is dispatched or between dispatched calls. The point was to define the arguments in the table not afterward.

    The problem was that this solution is skipped in the dipatch table examples I found online and in books. Some examples intimated that passing arguments from the table was difficult. I found the answer so easy, I thought I had missed something.


    HTH,
    Charles K. Clarkson
    Clarkson Energy Homes, Inc.
      Whats the point of declaring args in the dispatch table again? If the args are going to change between dispatch calls, then just call the dispatch ->(@args); if they arent going to change, then define defaults in the function itself.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (2)
As of 2024-04-26 00:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found