En el siguiente código:¿No debería acceder a @Whatever :: whatever producir al menos una advertencia en lugar de una matriz vacía?
use strict;
use warnings;
use Data::Dumper;
my %hash = %Whatever::whatever;
my @array = @Whatever::whatever;
print Dumper \@array;
print Dumper \%hash;
Mi entendimiento es que @Whatever :: lo está accediendo a la tabla de símbolos, y no produce un mensaje de error porque la tabla de símbolos es un hash. Pero ¿por qué no hay al menos un mensaje de advertencia para acceder a un elemento no existente?
Interesante: 'my @array = @Whatever;' genera un error, por supuesto. –
Yo diría en cambio que '@Whatever :: whatever' identifica una matriz de ámbito dinámico llamada' @ whatever' en el paquete 'Whatever', en lugar de eso * * accediendo a la tabla de símbolos ... [algo así como] un hash . "* Los identificadores calificados como ese siempre han evitado' strict'ures. – pilcrow
@pilcrow gracias. ¿Podrías poner esto como respuesta? –