我想创建一个 Perl 类并填充其属性。对象属性将像下面的 yaml 文件一样填充。
$data = LoadFile("$mydir/$ARGV[$j]");
my $X= $data->{a}{b}{c};
package Person;
sub new {
my $class = shift;
my $self = {
a=>shift;
};
bless $self, $class;
return $self;
}
my $p=Person->new();
我想访问这样的属性。我怎样才能做到这一点?
$p->a($data->{a}{b}{c});
最佳答案
$p->a($data->{a}{b}{c})
毫无意义。您的意思是 $p->a->{a}{b}{c}
吗?
package Person;
sub new {
my ($class, $data) = @_;
my $self = bless({}, $class);
$self->{data} = $data;
return $self;
}
sub data { $_[0]{data} }
1;
my $data = LoadFile(...);
my $p = Person->new($data);
say $p->data->{a}{b}{c};
关于class - Perl 中的对象属性访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66645224/