在这个文件中
https://github.com/csirtgadgets/massive-octo-spice/blob/develop/src/lib/CIF/Observable/Binary.pm ,
我被这个说法弄糊涂了
使用“CIF::Observable”;
第 9 行。Perl 中是否有关键字“with”?它是如何工作的?
package CIF::Observable::Binary;
use strict;
use warnings;
use Mouse;
use Digest::SHA qw/sha256_hex/;
with 'CIF::Observable';
use constant DEFAULT_HASH_TYPE => 'sha256';
has '+otype' => (
default => 'binary',
);
has 'hash' => (
is => 'ro',
isa => 'CIF::Type::Hash',
default => sub { sha256_hex($_[0]->{'observable'}) },
);
has 'htype' => (
is => 'ro',
isa => 'Str',
default => DEFAULT_HASH_TYPE(),
);
sub process {}
sub understands {
my $self = shift;
my $args = shift;
return unless($args->{'observable'});
return unless($args->{'otype'});
return unless($args->{'otype'} eq 'binary');
return 1;
}
__PACKAGE__->meta()->make_immutable();
1;
最佳答案
with
关键字被 Mouse
使用对象系统以指示正在定义的类使用指定的角色
Mouse
是 Moose
对象系统的缩减实现,编写主要是为了减少基于 Moose< 的程序预期的较长编译时间
在 Mouse
中处理角色的方式与在 Moose
中几乎相同,并且 Moose::Role
documentation为两个模块服务
关于perl - Perl 中有关键字 'with' 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34215898/