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

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'";

Replies are listed 'Best First'.
Re^6: How to conditionally execute a subroutine defined as hash value
by Anonymous Monk on Apr 02, 2014 at 11:16 UTC
    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.