I am trying to figure out a way to initialize a hash without having to go through a loop. I was hoping to use slices for that, but it doesn\'t seem to produce the expected resul
For the first one, try
my %hash =
( "currency_symbol" => "BRL",
"currency_name" => "Real"
);
print Dumper(\%hash);
The result will be:
$VAR1 = {
'currency_symbol' => 'BRL',
'currency_name' => 'Real'
};
use strict;
use warnings; # Must-haves
# ... Initialize your arrays
my @fields = ('currency_symbol', 'currency_name');
my @array = ('BRL','Real');
# ... Assign to your hash
my %hash;
@hash{@fields} = @array;
So, what you want is to populate the hash using an array for the keys, and an array for the values. Then do the following:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my %hash;
my @keys = ("a","b");
my @values = ("1","2");
@hash{@keys} = @values;
print Dumper(\%hash);'
gives:
$VAR1 = {
'a' => '1',
'b' => '2'
};
%hash = ('current_symbol' => 'BLR', 'currency_name' => 'Real');
or
my %hash = ();
my @fields = ('currency_symbol', 'currency_name');
my @array = ('BRL','Real');
@hash{@fields} = @array x @fields;