Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: Using form return value as subroutine name (updated x2)

by AnomalousMonk (Archbishop)
on Jul 15, 2021 at 03:55 UTC ( [id://11135012]=note: print w/replies, xml ) Need Help??


in reply to Using form return value as subroutine name

Generally speaking, a function dispatch table:

Win8 Strawberry 5.8.9.5 (32) Wed 07/14/2021 23:52:13 C:\@Work\Perl\monks >perl use strict; use warnings; my %func = ( foo => sub { print "fooble: @_ \n"; }, bar => sub { print "barble: @_ \n"; }, ); my $from_form = 'foo'; $func{$from_form}(42, 'zot'); ^Z fooble: 42 zot

Update 1: It's usually wise to check if the $from_form string actually exists in the %func dispatch table before trying to invoke it. :)

Update 2: In Perl as in life, there's usually more than one way to do something. Another way to do what you want is called "symbolic referencing", also known as a "soft reference". This technique is Officially Frowned Upon. See Why it's stupid to `use a variable as a variable name' and also the perlfaq7 FAQ How can I use a variable as a variable name?


Give a man a fish:  <%-{-{-{-<

Replies are listed 'Best First'.
Re^2: Using form return value as subroutine name
by phirun (Novice) on Jul 15, 2021 at 03:59 UTC
    Thanks. Elegant indeed!

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (2)
As of 2024-04-26 01:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found