Son zamanlarda bir komut dosyası hata ayıklama önemli zaman geçirdim ve nihayet sorunu buldum, bunun gibi görünen kod nedeniyle oldu:
class Foo {
has $.bar;
method () {
# do stuff
$!.bar;
}
}
Sorunun $!.bar
ya $!bar
da olması gerektiği ile ilgili olduğu ortaya çıktı $.bar
. Bunu anladım.
Ama bu neden ölmüyor ?
Daha ayrıntılı olarak bu baktığımızda, burada sorun gibi görünüyor Ben (varolmayan) yöntemini çağırmak çalışıyorum olmasıdır bar
üzerinde $!
bu noktada, Nil
herhangi bir hata olmamıştır çünkü.
Aslında ben üzerinde istediğiniz herhangi yöntemini çağırabilirsiniz Ve görünüşe Nil
ve hepsi sessizce dönüş Nil
gibi şeyler de dahil olmak üzere, Nil.this-is-a-fake-method
ve Nil.reverse-entropy(123)
.
Bu bir özellik mi? Eğer öyleyse, mantığı nedir?