最近スクリプトのデバッグにかなりの時間を費やしましたが、ようやく問題が見つかったのは、次のようなコードが原因でした。
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)
ます。
これは機能ですか?もしそうなら、理論的根拠は何ですか?