Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re^4: How to conditionally execute a subroutine defined as hash value

by Anonymous Monk
on Apr 02, 2014 at 10:53 UTC ( #1080747=note: print w/replies, xml ) Need Help??


in reply to Re^3: How to conditionally execute a subroutine defined as hash value
in thread How to conditionally execute a subroutine defined as hash value

Thanks but I need to pass %config_A when $test is A, and %config_B when $test is B.
  • Comment on Re^4: How to conditionally execute a subroutine defined as hash value

Replies are listed 'Best First'.
Re^5: How to conditionally execute a subroutine defined as hash value
by Corion (Patriarch) on Apr 02, 2014 at 10:55 UTC

    Then consider passing the appropriate parameter, depending on $test?

    my $config= 'A' eq $test ? \%config_A : \%config_B;

    Or even better, do the same for your data as you already did for your code:

    my %config= ( A => \%config_A, B => \%config_B, ); my $config= $config{ $test } or die "Unknown test '$test'";
      Thanks but it was a simplified example from what I'm doing. I need to test a templating system and so my stuff is more like this below and BrowserUK's solution allows me to set all in a single sub definition. However I like your solution too and I'll keep it in mind for other contexts. Thanks!
      my $test = 'show_stop_user'; my $calls = { show_home => sub { show_home($config) }, show_stop_user => sub { show_stop_user($config, {user=>'dummy',type=>'Users'}) }, admin_users_new_1 => sub { show_admin_user($config, { action=>'add', messages=>{ success=>['line1','line2'] }})}, admin_users_new_2 => sub { show_admin_user($config, { action=>'add' }) }, }; $calls->{$test}();
      Now I need to find out how I can redirect the Template::Toolkit output to the file $test.'.html' instead of screen...

        Thanks for finally letting us know what you really want.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (4)
As of 2022-08-16 18:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?