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
¿Fue útil?

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
scroll top