perl - Perl 中有关键字 'with' 吗?

标签 perl with-statement

在这个文件中

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 使用对象系统以指示正在定义的类使用指定的角色

MouseMoose 对象系统的缩减实现,编写主要是为了减少基于 Moose< 的程序预期的较长编译时间

Mouse 中处理角色的方式与在 Moose 中几乎相同,并且 Moose::Role documentation为两个模块服务

关于perl - Perl 中有关键字 'with' 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34215898/

相关文章:

mysql - 根据给定的词群,根据 OCR 错误自动构建可能词的输出列表

python - Python 的 MySQLdb 的上下文管理器

arrays - 如何在 Perl 中创建二维数组?

multithreading - Perl:如何编辑shared_clone的结构?

Python:使用 "with"打开压缩或解压缩文件

Python win32com.client 和 "with"语句

python - 在 Python 中,如果我在 "with" block 内返回,文件还会关闭吗?

python - 为什么 with 语句中变量是可选的?

perl - 如何在命令行中将哈希作为可选参数传递给 -M

perl - 令人困惑的 Perl 数组行为