J'essaie de trouver un moyen d'initialiser un hachage sans avoir à passer par une boucle. J'espérais utiliser des tranches pour cela, mais cela ne semble pas produire les résultats attendus.Comment initialiser des valeurs dans un hachage sans boucle?
Consultez le code suivant:
#!/usr/bin/perl
use Data::Dumper;
my %hash =();
$hash{currency_symbol} = 'BRL';
$hash{currency_name} = 'Real';
print Dumper(%hash);
Cela fonctionne comme attendre et produire la sortie suivante:
$VAR1 = 'currency_symbol';
$VAR2 = 'BRL';
$VAR3 = 'currency_name';
$VAR4 = 'Real';
Lorsque je tente d'utiliser des tranches comme suit, il ne fonctionne pas:
#!/usr/bin/perl
use Data::Dumper;
my %hash =();
my @fields = ('currency_symbol', 'currency_name');
my @array = ('BRL','Real');
@hash{@array} = @fields x @array;
La sortie est la suivante:
$VAR1 = 'currency_symbol';
$VAR2 = '22';
$VAR3 = 'currency_name';
$VAR4 = undef;
Il y a évidemment quelque chose qui ne va pas. Donc, ma question serait: quelle est la façon la plus élégante d'initialiser un hachage donné deux tableaux (les clés et les valeurs)?
Merci - parfait! – emx