最近,我花了很多时间调试脚本,当我最终发现问题时,是由于代码如下所示:
class Foo {
has $.bar;
method () {
# do stuff
$!.bar;
}
}
原来问题在于$!.bar
它应该是$!bar
或$.bar
。我明白了
但是为什么不死呢?
详细看这个,它看起来像这里的问题是,我试图调用(不存在)的方法bar
上$!
,它在这一点上Nil
,因为再也没有出现过任何差错。
看起来我可以实际调用任何我想要的方法了Nil
,它们都默默地返回Nil
,包括Nil.this-is-a-fake-method
和之类的东西Nil.reverse-entropy(123)
。
这是功能吗?如果是这样,有什么根据?