Saya menghabiskan banyak waktu debugging skrip baru-baru ini, dan ketika saya akhirnya menemukan masalah itu karena kode yang terlihat seperti ini:
class Foo {
has $.bar;
method () {
# do stuff
$!.bar;
}
}
Ternyata masalahnya adalah dengan itu $!.bar, yang seharusnya $!baratau $.bar. Saya mengerti.
Tapi mengapa ini tidak mati ?
Melihat ini secara lebih detail, sepertinya masalah di sini adalah bahwa saya sedang mencoba untuk memanggil (tidak ada) metode barpada $!, yang pada saat ini adalah Nilkarena belum ada kesalahan.
Dan sepertinya saya benar-benar dapat memanggil metode apa pun yang saya inginkan Nildan mereka semua diam-diam kembali Nil, termasuk hal-hal seperti Nil.this-is-a-fake-methoddan Nil.reverse-entropy(123).
Apakah ini fitur? Jika demikian, apa alasannya?