Nel codice seguente:Non dovrebbe accedere a @Whatever :: cosa produce almeno un avvertimento invece di un array vuoto?
use strict;
use warnings;
use Data::Dumper;
my %hash = %Whatever::whatever;
my @array = @Whatever::whatever;
print Dumper \@array;
print Dumper \%hash;
mia comprensione è che @Whatever :: qualunque sta accedendo alla tabella dei simboli, e non produce un messaggio di errore perché tabella dei simboli è un hash. Ma perché non c'è almeno un messaggio di avviso per accedere a un elemento non esistente?
Interessante: 'my @array = @Whatever;' genera un errore, ovviamente. –
Direi invece che '@Whatever :: whatever' identifica un array con scope dinamico chiamato' @ whatever' nel pacchetto 'Whatever', piuttosto che * *" che accede alla tabella dei simboli ... [in qualche modo] un hash . "* Identificatori qualificati come quelli hanno sempre evitato i' strict'ures. – pilcrow
@pilcrow grazie. potresti per favore mettere questo come risposta? –