使用Function::Parameters
模块Types::Standard
时遇到问题。在此代码中,在Person.pm中:
package Person;
use strict;
use warnings;
use Function::Parameters;
use Types::Standard qw(InstanceOf);
method is_taller_than(
InstanceOf['Person'] $other
) {
return;
}
1;
使用perl -cw Person.pm
报告:
In method is_taller_than: missing type name after '[' at Person.pm line 9.
我该如何解决这个问题?
答案 0 :(得分:4)
这看起来像Function::Parameters
中的解析限制。它可以处理裸字和方括号,但不能处理带引号的字符串。解决这个问题的方法就是在类型表达式周围添加括号:
method is_taller_than(
(InstanceOf['Person']) $other
) {