$ cat test.pl
use strict;
use warnings;
sub route {
print "hello, world!";
}
my %h;
$h{'a'} = 'route';
print "1\n";
$h{a};
print "2\n";
$h{a}();
print "3\n";
"$h{a}".();
$ perl test.pl
Useless use of hash element in void context at test.pl line 12.
Useless use of concatenation (.) or string in void context at test.pl line 18.
1
2
Can't use string ("route") as a subroutine ref while "strict refs" in use at test.pl line 15.
$
¿Cuál es la forma correcta de llamar al route()
?¿Cómo puedo llamar a una subrutina cuyo nombre es un valor en un hash, en Perl?
posible duplicado de [¿Cómo puedo llamar a un nombre de función que está almacenado en un hash en Perl?] (Http://stackoverflow.com/questions/1836178/how-do-i-call-a-function-name -that-is-stored-in-a-hash-in-perl) – Ether