2014-10-30 99 views
0

我有這樣分配數組值散列

@arr = ("test1","test2","test3","test4",...); 

而且hashref陣列已經具有以下值

$hash->{name} = 'name1'; 
$hash->{addr} = 'addr'; 

我需要添加每個數組元素散列像

$hash->{array_1} = "test1"; 
$hash->{array_2} = "test2"; 
$hash->{array_3} = "test3"; 
.. 

我怎樣才能輕鬆實現這一點?我不需要像$hash->{array_1} = $arr[0]; ...)。有沒有其他方法將這些數組元素分配爲散列值?

回答

2

您可以使用hash slice

@$hash{ map "array_$_", 1 .. @arr } = @arr; 

$hash->{"array_$_"} = $arr[$_-1] for 1 .. @arr;