我正在使用Moose对象,但我需要声明静态成员,以便只执行一次并且与对象无关。
你有什么想法或例子吗?
由于
多坦。
答案 0 :(得分:6)
您可以使用MooseX::ClassAttribute:
package SomeClass;
use Moose;
use MooseX::ClassAttribute;
class_has 'static_member' => ( is => 'rw' );
使用SomeClass->static_member
访问该成员。
答案 1 :(得分:2)
我尝试使用MovX :: ClassAttribute作为bvr建议,但我最后只是将它们设置为只读成员,默认为:
has 'static_thing' => ( is => 'ro', init_arg => undef, default => 42 );
看起来更简单。
答案 2 :(得分:2)
所以只需在类.pm文件中设置一个变量
package SomeClass;
use Moose;
my $instance_counter = 0;
around BUILDARGS => sub {
$instance_counter += 1;
}
. . .