Estoy intentando agregar nuevos métodos a un objeto dinámicamente.cómo crear métodos a partir de matrices o hashes en perl6
siguiente código funciona bien:
use SomeClass;
my $obj = SomeClass.new;
my $blah = 'ping';
my $coderef = method { say 'pong'; }
$obj.^add_method($blah, $coderef);
$obj.ping;
esta imagen Impresiones "Pong" como se esperaba, mientras que el siguiente no funcionará como se esperaba:
use SomeClass;
my $obj = SomeClass.new;
my %hash = one => 1, two => 2, three => 3;
for %hash.kv -> $k, $v {
my $coderef = method { print $v; }
$obj.^add_method($k, $coderef);
}
$obj.one;
$obj.two;
$obj.three;
imprimirá ya sea 111 o 333.
¿Alguien podría explicar lo que me estoy perdiendo o por qué los resultados son diferentes de lo que esperaba?
gracias por esta información. utilicé la última versión mensual. –