En Perl, que son capaces de llamar a una función por referencia (o nombre) de este modo:Perl: Problemas llamada a subrutinas de referencia utilizando un valor hash
my $functionName = 'someFunction';
&$functionName();
#someFunction defined here:
sub someFunction { print "Hello World!"; }
Lo que estoy tratando de hacer es el uso un valor de un hash, así:
my %hash = (
functionName => 'someFunction',
);
&$hash{functionName}();
#someFunction defined here:
sub someFunction { print "Hello World!"; }
Y el error que consigo es el símbolo mundial "$ almohadilla" requiere el nombre del paquete explícito.
Mi pregunta es: ¿hay una manera correcta de hacer esto sin usar una variable intermedia?
¡Cualquier ayuda en esto sería muy apreciada!
También puede hacer 'my% hash = (function => \ & someFunction)' que no requiere 'no stric t 'refs''. – TLP
@TLP +1, iba a * responder * esto. 'use strict;' saves ** entonces ** mucho problema ... – Dallaylaen
Puedo usar eso, pero agrega un código algo ilegible (por ahora) ... Estoy estableciendo dinámicamente el valor de functionName en tiempo de ejecución y llamando a una función por su nombre. Perl es muy divertido! – Thumper