Estoy tratando de encontrar una manera de inicializar un hash sin tener que pasar por un bucle. Esperaba usar rodajas para eso, pero no parece producir los resultados esperados.¿Cómo inicializo los valores en un hash sin bucle?
Considere el siguiente código:
#!/usr/bin/perl
use Data::Dumper;
my %hash =();
$hash{currency_symbol} = 'BRL';
$hash{currency_name} = 'Real';
print Dumper(%hash);
Esto funciona como esperan y producir el siguiente resultado:
$VAR1 = 'currency_symbol';
$VAR2 = 'BRL';
$VAR3 = 'currency_name';
$VAR4 = 'Real';
Cuando intento utilizar rebanadas de la siguiente manera, que no funciona:
#!/usr/bin/perl
use Data::Dumper;
my %hash =();
my @fields = ('currency_symbol', 'currency_name');
my @array = ('BRL','Real');
@hash{@array} = @fields x @array;
La salida es:
$VAR1 = 'currency_symbol';
$VAR2 = '22';
$VAR3 = 'currency_name';
$VAR4 = undef;
Obviamente hay algo mal.
Así que mi pregunta sería: ¿cuál es la forma más elegante de inicializar un hash dado dos matrices (las claves y los valores)?
Gracias - ¡perfecto! – emx