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 $!baroder 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 barauf $!, die an dieser Stelle ist , Nilweil es irgendwelche Fehler nicht gewesen sein.
Und es sieht so aus, als könnte ich tatsächlich jede Methode aufrufen, die ich möchte, Nilund alle kehren lautlos zurück Nil, einschließlich Sachen wie Nil.this-is-a-fake-methodund Nil.reverse-entropy(123).
Ist das eine Funktion? Wenn ja, was ist der Grund?