Ich habe in letzter Zeit viel Zeit damit verbracht, ein Skript zu debuggen, und als ich schließlich das Problem fand, lag es an Code, der so aussah:
class Foo {
has $.bar;
method () {
# do stuff
$!.bar;
}
}
Es stellte sich heraus, dass das Problem damit bestand $!.bar
, was entweder $!bar
oder sein sollte $.bar
. Ich verstehe das.
Aber warum stirbt das nicht ?
Mit Blick auf diese im Detail, es sieht aus wie das Problem hier ist , dass ich versuche , eine (nicht vorhanden) Methode aufrufen bar
auf $!
, die an dieser Stelle ist , Nil
weil es irgendwelche Fehler nicht gewesen sein.
Und es sieht so aus, als könnte ich tatsächlich jede Methode aufrufen, die ich möchte, Nil
und alle kehren lautlos zurück Nil
, einschließlich Sachen wie Nil.this-is-a-fake-method
und Nil.reverse-entropy(123)
.
Ist das eine Funktion? Wenn ja, was ist der Grund?