Так что я знаком с fields pragma в Perl, которые могут быть использованы для ограничения поля, которые хранятся в классе:Получение списка полей из прагмы «use fields»?
package Fruit;
use fields qw(color shape taste);
sub new {
my ($class, $params) = @_;
my $self = fields::new($class) unless ref $class;
foreach my $name (keys %$params) {
$self->{ $name } = $params->{ $name };
}
return $self;
}
После того, как я объявил поля в верхней части, как я могу получить назад, скажите, потому что я хочу генерировать аксессуры динамически? Есть keys %FIELDS
единственный способ?
Во-вторых, существует ли более эффективный способ предварительного заполнения полей в конструкторе, чем цикл и назначение каждого параметра, как я делаю выше?
Почему вы используете 'fields'? –