gpt4 book ai didi

perl - Moose:通过创建对象检查属性

转载 作者:行者123 更新时间:2023-12-05 00:34:16 24 4
gpt4 key购买 nike

我开始使用 Moose,我有以下问题。似乎我可以分配我没有在模块中指定的属性。如果我尝试访问此属性,则会出现错误消息。我怎样才能阻止模块中未指定的属性的分配?在下面的示例中,我指定了年龄,但我没有在模块中指定它。除非我试图说出来,否则这是默默接受的。我希望该错误消息出现在 ->new 语句之后。

代码:

 #!/usr/bin/perl
use strict;
use warnings;

use 5.012;
package People;
use Moose;
use namespace::autoclean;
has 'name' => (is => 'rw');
__PACKAGE__->meta->make_immutable;

package main;
my $friend = People->new( name => 'Peter', age => 20 ); # no error.
say $friend->name;
say $friend->age; # here comes the error message.

谢谢!

最佳答案

试一试:

use MooseX::StrictConstructor;

当你将 age 传递给构造函数时,会抛出这样的错误:

Found unknown attribute(s) passed to the constructor: age ...

关于perl - Moose:通过创建对象检查属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14921728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com