Simbolo-tavolo: voci di eliminazione
-
30-09-2019 - |
Domanda
Perché ottengo i valori "$ n" e "$ m" dopo l'eliminazione delle rispettive tabelle di simboli-voci?
#!/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
Soluzione
Dato che la tabella dei simboli viene utilizzato solo in fase di compilazione (o tramite riferimento simbolico). Il glob che è il valore di riferimento è $Foo::{...}
direttamente dal codice compilato in modo che il non-più-presente voce di tabella dei simboli non ha alcun effetto.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow