Ich versuche, einem Objekt dynamisch neue Methoden hinzuzufügen.So erstellen Sie Methoden aus Arrays oder Hashes in perl6
Code Nach funktioniert gut:
use SomeClass;
my $obj = SomeClass.new;
my $blah = 'ping';
my $coderef = method { say 'pong'; }
$obj.^add_method($blah, $coderef);
$obj.ping;
dieses prints "Pong", wie erwartet, während die folgenden werden nicht wie erwartet:
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;
druckt entweder 111 oder 333.
Könnte jemand erklären, was ich vermisse oder warum die Ergebnisse von dem abweichen, was ich erwartet habe?
danke für diese Info. Ich habe die neueste monatliche Version verwendet. –