在使用Net::SIP
模块时,我在某些函数中注意到有一些代码定义了参数的类。例如:
sub can_deliver_to {
my Net::SIP::Leg $self = shift;
[...]
return 1;
}
指定Net::SIP::Leg
对定义$self
有什么目的?仅仅是语法糖来帮助开发人员了解变量$self
应该是哪种类型?
答案 0 :(得分:4)
如果以某种无效的方式访问结构/对象,则会引发编译时错误。
请参见https://perldoc.perl.org/functions/my.html
gpg --batch --passphrase somepassphrase -o "Outfile.txt" --decrypt "Input.pgp"
my VARLIST my TYPE VARLIST my VARLIST : ATTRS my TYPE VARLIST : ATTRS
声明列出的变量在包围的块,文件或eval中是局部的(按词法)。如果列出了多个变量,则该列表必须放在括号中。TYPE和ATTRS的确切语义和接口仍在不断发展。 TYPE可以是空词,可以是用
my
或use constant
声明的常量。当前,它绑定到__PACKAGE__
杂用的使用,并且属性使用fields
杂用处理,或者也可以通过attributes
模块从Perl 5.8.0开始处理。
如果您跳到https://perldoc.perl.org/fields.html上Attribute::Handlers
上的文档,则会看到以下示例:
fields