假设我有,
use experimental 'signatures';
sub foo ($bar) { return 0 };
现在,如果我在没有正确的情况下调用它arity,我会得到一个错误。
# Too few arguments for subroutine 'main::foo'
foo()
# Too many arguments for subroutine 'main::foo'
foo(1,2);
但是,我该如何测试。假设我想确保有人实现了一个package Bar
这样的函数,它的函数foo
需要一个参数。有没有办法在不运行该代码的情况下做到这一点。
我认为这个问题与我的其他问题不同,因为即使我无法通过某种 Perl API 读取签名,也可能有一种方法可以测试子例程是否使用特定签名声明?这个问题的答案可以用来回答这个问题。但是这个问题的答案可能无法回答那个问题。