perl – 将属性重置为默认值

前端之家收集整理的这篇文章主要介绍了perl – 将属性重置为默认值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我可以像这样宣布与Moose的关系:

has 'attr' => (is => 'rw',isa => 'Int',default => 10);

是否可以将此值重置为默认值?

例:

$obj->attr(5); # sets attr to 5
$obj->_reset_attr;
print $obj->attr; # will print 10

解决方法

如果你这样做:

has 'attr' => (
  is => 'rw',lazy => 1,default => 10,clearer => '_clear_attr',);

然后你可以这样做:

my $obj = Class->new;
print $obj->attr; # 10
$obj->attr(5);
print $obj->attr; # 5
$obj->_clear_attr;
print $obj->attr; # 10

懒惰和清晰的组合在这里很重要.

猜你在找的Perl相关文章