In Perl, you are able to call a function by reference (or name) like so:
my $functionName = 'someFunction';
&$functionName();
#someFunction defined here:
sub someFunction { print "Hello World!"; }
What I am trying to do is use a value from a Hash, like so:
my %hash = (
functionName => 'someFunction',
);
&$hash{functionName}();
#someFunction defined here:
sub someFunction { print "Hello World!"; }
And the error I get is Global symbol "$hash" requires explicit package name.
My question is: Is there a correct way to do this without using an intermediate variable?
Any help on this would be greatly appreciated!
my %hash = ( function => \&someFunction )
which does not requireno strict 'refs'
. – Cramptonuse strict;
saves so much trouble... – Amino