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
Était-ce utile?

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