¿Cómo inicializo valores en un hash sin un bucle?

Estoy tratando de encontrar una manera de inicializar un hash sin tener que pasar por un bucle. Esperaba usar rebanadas para eso, pero no parece producir los resultados esperados.

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 se espera y produce el siguiente resultado:

$VAR1 = 'currency_symbol';
$VAR2 = 'BRL';
$VAR3 = 'currency_name';
$VAR4 = 'Real';

Cuando trato de usar rebanadas de la siguiente manera, 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;

El resultado es:

$VAR1 = 'currency_symbol';
$VAR2 = '22';
$VAR3 = 'currency_name';
$VAR4 = undef;

Obviamente hay algo mal.

Entonces, mi pregunta sería: ¿cuál es la forma más elegante de inicializar un hash dado dos matrices (las claves y los valores)?

Respuestas a la pregunta(4)

Su respuesta a la pregunta