Symbole table: entrées suppression
-
30-09-2019 - |
Question
Pourquoi puis-je obtenir les valeurs de "$ n" et "m $" après la suppression des symboles respectifs-table-entrées?
#!/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
La solution
Parce que la table des symboles est utilisé au moment de la compilation (ou par référence symbolique). Le glob qui est la valeur de $Foo::{...}
est référencée directement par le code compilé si l'entrée de la table des symboles qui ne est plus présent n'a pas d'effet.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow