in reply to Strict, strings and subroutines
Others have given you several solutions, but there is one more.
strict will only cause an error if you try to call the sub
by using a string. It does not stop you taking a reference. So
my $sub = \&{'do_'.$type}; $sub->();
Is perfectly legal. But if you don't want the extra variable
(\&{'do_'.$type})->();
will work too. But the benefit of using the variable is that you can check that the sub actually exists with
my $sub = \&{'do_'.$type}; die "Unknown sub 'do_$type'" unless defined(&$sub);
In Section
Seekers of Perl Wisdom