2016-08-23 2 views
-4

키가있는 해시가 있습니다. 이제 배열에서 해시 값을 채우고 싶습니다.배열에서 값을 가져온 해시를 만드는 방법은 무엇입니까?

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

당신은 hash slice 사용할 수

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

한 줄짜리 코딩을 시도하지 않으셨습니까? – ssr1012

+3

어떤 배열 요소가 어떤 키에 매핑되는지 어떻게 알 수 있습니까? 해시는 순서가 지정되지 않습니다. – Sobrique

답변

1

원하는 출력 :

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

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

print Dumper\%hash; 

출력 :

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

당신은 해시 기존의 키를 사용할 수 없습니다 (@hash{ keys(%hash) } = @array;) 원하는 출력으로 { key1 => 2, key2 => 1 }으로 쉽게 끝날 수 있기 때문입니다.

+0

dowvote에 감사드립니다! 왜 그럴 수 있니? – Toto

+1

팁 :'@hash {('key1', 'key2')}'는'@hash {qw (key1 key2)} '로 쓸 수 있습니다. – ikegami

관련 문제