我想找出一種方法來初始化一個散列,而不必經過一個循環。我希望爲此使用切片,但似乎沒有產生預期的結果。如何在沒有循環的情況下初始化散列值?
考慮下面的代碼:
#!/usr/bin/perl
use Data::Dumper;
my %hash =();
$hash{currency_symbol} = 'BRL';
$hash{currency_name} = 'Real';
print Dumper(%hash);
這樣確實如預期,併產生以下的輸出:
$VAR1 = 'currency_symbol';
$VAR2 = 'BRL';
$VAR3 = 'currency_name';
$VAR4 = 'Real';
當我嘗試按如下方式使用切片,這是行不通的:
#!/usr/bin/perl
use Data::Dumper;
my %hash =();
my @fields = ('currency_symbol', 'currency_name');
my @array = ('BRL','Real');
@hash{@array} = @fields x @array;
輸出結果爲:
$VAR1 = 'currency_symbol';
$VAR2 = '22';
$VAR3 = 'currency_name';
$VAR4 = undef;
顯然有些問題。
所以我的問題是:什麼是最優雅的方式來初始化散列給出兩個數組(鍵和值)?
謝謝 - 完美! – emx 2010-08-24 12:05:46