La tabla de símbolos: eliminación de entradas
-
30-09-2019 - |
Pregunta
¿Por qué recibo los valores de "$ n" y "m $" después de borrar los respectivos tabla de símbolos-entradas?
#!/usr/bin/env perl
use warnings;
use 5.012;
package Foo;
our $n = 10;
our $m = 20;
delete $Foo::{'n'};
delete $Foo::{'m'};
say $n; # 10
say $m; # 20
Solución
Debido a que la tabla de símbolos se utiliza solamente en tiempo de compilación (o por medio de referencia simbólica). El glob que es el valor de $Foo::{...}
se hace referencia directamente por el código compilado por lo que el que ya no se presente la entrada de tabla de símbolos tiene ningún efecto.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow