Das Folgende ist ein vereinfachtes Beispiel für meinen echten Code:Moo: In Attribute auf einem anderen (langfristigen) Paket
#!/usr/bin/perl
package X;
use Moo;
sub add_attr_for_another_package {
my ($package) = @_;
eval "package $package";
has 'q' => (is=>'rw', default=>123);
}
package Y;
use Moo;
X::add_attr_for_another_package('Y');
my $obj = Y->new;
print $obj->q, "\n";
Ich versuche, ein Attribut hinzufügen Y
aus einer Funktion in Paket X
definiert zu verpacken. Das funktioniert nicht:
Bitte helfen, wie kann ich ein Attribut zu einem Paket von einer Methode hinzufügen, die in einem anderen Paket definiert ist.
Sollte ich zu Moose wechseln?