函数::参数 - 什么做"在方法中......:' ['"

时间:2017-08-20 20:56:22

标签: perl

使用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.

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

这看起来像Function::Parameters中的解析限制。它可以处理裸字和方括号,但不能处理带引号的字符串。解决这个问题的方法就是在类型表达式周围添加括号:

method is_taller_than(
  (InstanceOf['Person']) $other
) {