【发布时间】:2013-10-26 17:34:13
【问题描述】:
我有一个Moosebased class,有几个我想删除的属性。
我希望使用它们来生成弃用警告。
可能有一种方法可以禁用警告。
package JSON::RPC::LWP;
...
use Moose;
...
has previous_id => (
is => 'ro',
isa => JSONValue,
init_arg => undef,
writer => '_previous_id',
predicate => 'has_previous_id',
clearer => 'clear_previous_id',
);
# default id generator is a simple incrementor
my $default_id_gen = sub{
my($self,$prev) = @_;
$prev ||= 0;
return $prev + 1;
};
has id_generator => (
is => 'rw',
isa => 'Maybe[CodeRef]',
default => sub{ $default_id_gen },
trigger => sub{
my($self,$coderef) = @_;
unless( $coderef ){
$self->{id_generator} = $default_id_gen;
}
},
);
我已经removed the only place id_generator was used了。
目前,此模块中唯一已知的user 将id_generator 设置为有效地将其设置为未来行为的代码引用。
我有modified 它只能在我的模块的旧版本上执行此操作。 (尚未发布)
package Games::Lacuna::Client::RPC;
...
use Moose;
extends 'JSON::RPC::LWP';
...
has '+id_generator' => (
default => sub{sub{1}},
);
【问题讨论】:
-
恭喜你成为 #1337 堆栈溢出用户!你是1337!
标签: perl attributes deprecated moose