В последнее время я потратил много времени на отладку скрипта, и когда я, наконец, обнаружил проблему, это было из-за кода, который был похож на это:
class Foo {
has $.bar;
method () {
# do stuff
$!.bar;
}
}
Оказалось, что проблема была с этим $!.bar
, который должен был быть либо $!bar
, либо $.bar
. Я получаю это.
Но , почему это не d ie?
Если взглянуть на это более подробно, похоже, проблема в том, что я ' я пытаюсь вызвать (несуществующий) метод bar
на $!
, который на данный момент равен Nil
, потому что не было никаких ошибок.
И это Похоже, я действительно могу вызвать любой метод, который я хочу на Nil
, и все они молча возвращают Nil
, включая такие вещи, как Nil.this-is-a-fake-method
и Nil.reverse-entropy(123)
.
Это функция? Если да, то в чем смысл?