à Moose nous pouvons imposer des restrictions sur les attributs d'instance ou ajouter des getters/setters comme ceci:générer Dynamiquement écrivain/lecteur de noms d'attributs à Moose
has 'color' => (
is => 'rw',
isa => 'Str',
writer => '_set_color',
);
Ma question est, est-il un moyen de le faire dynamiquement pour un tableau d'éléments? Il est possible de faire quelque chose comme ceci:
has ['color', 'temperature', 'size'] => (
is => 'rw',
isa => 'Str',
);
Mais est-il un moyen de créer pour chacun de ces éléments son auteur (ou lecteur), par exemple _set_color
, _set_temperature
, _set_size
? J'ai essayé de voir si ce qui suit a donné une idée, mais il a retourné une erreur
mauvais accesseur/lecteur/auteur/prédicats/format plus clair, doit être un HASH ref
has ['color', 'temperature', 'size'] => (
is => 'rw',
isa => 'Str',
writer => sub {
print Dumper(\@_);
return;
);
Qu'est-ce que J'espère obtenir quelque chose comme (ce qui ne fonctionne pas):
has ['color', 'temperature', 'size'] => (
is => 'rw',
isa => 'Str',
writer => "_set_$_";
);
J'ai besoin écrivains personnalisés, si juste pour aller ceux fournis par Moose ne fonctionne pas fo R moi.