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
È stato utile?

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