在類的構造方法我讀代碼片段如下圖所示:定義在Perl
sub new {
my $pkg = shift;
my $args = shift;
my @keys = keys %$args;
my $self = bless \%{$args}, $pkg;
$self->{'__properties'} = \@keys;
my $class = ref($self);
foreach my $meth (@keys) {
if (! $self->can($meth)) {
no strict "refs";
*{ $class . "::" . $meth } = sub {
my $instance = shift;
return $instance->{$meth};
};
}
}
return $self;
}
在的foreach循環,似乎它根據參數創建的一些方法。有兩行我不明白。有人可以幫我嗎?什麼是*和{}用於?
no strict "refs";
*{ $class . "::" . $meth }
最好的問候,