2016-08-23 27 views
-4

私はキーを持つハッシュを持っているので、配列からハッシュの値を埋めたいと思っています。どのように配列から値を取得したハッシュを作成するのですか?

my %hash = (key1 => "" , key2 => "") 
my array = (1 ,2) 

所望の出力

my %hash = (key1 => 1 , key2 => 2) 
+5

1行コーディングでも試していませんでしたか? – ssr1012

+3

どの配列要素がどのキーにマップされているかをどのように知っていますか?ハッシュは順不同です。 – Sobrique

答えて

1

あなたはhash slice使用することができます:あなたは(ハッシュの既存のキーを使用することはできません

$VAR1 = { 
     'key1' => 1, 
     'key2' => 2 
    }; 

my %hash = (key1 => "" , key2 => "") ; 
my @array = (1 ,2); 

@hash{('key1','key2')} = @array; 

print Dumper\%hash; 

出力を@hash{ keys(%hash) } = @array;)、これは目的の出力として{ key1 => 2, key2 => 1 }と同じように簡単に終了できるからです。

+0

dowvoteありがとう!理由がありますか? – Toto

+1

ヒント: '@hash {( 'key1'、 'key2')}'は '@hash {qw(key1 key2)}'と書くことができます。 – ikegami

関連する問題