Pasé un tiempo considerable depurando un script recientemente, y cuando finalmente encontré el problema fue por un código que se veía así:
class Foo {
has $.bar;
method () {
# do stuff
$!.bar;
}
}
Resultó que el problema era con eso $!.bar, que debería haber sido $!baro $.bar. Entiendo esto.
¿ Pero por qué no muere esto ?
En cuanto a esto con más detalle, parece que el problema aquí es que estoy tratando de llamar a un método (inexistente) barde $!que en este momento es Nilporque no ha habido ningún error.
Y parece que realmente puedo llamar a cualquier método que quiera Nily todos regresan en silencio Nil, incluyendo cosas como Nil.this-is-a-fake-methody Nil.reverse-entropy(123).
¿Es esta una característica? Si es así, ¿cuál es la razón?