次のように 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
次のように 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',
isa => 'Int',
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
lazy
ここではとの組み合わせclearer
が重要です。