2014-02-12 4 views
-2

두 해시 하위 키가 서로 일치하는지 여부를 비교하는 방법은 무엇입니까?해시 하위 키를 비교하는 방법

%hash={'Key1' => { 
        'Sub_key1' => [ 'value' ] 
       } 
     'key2' => { 
        'Sub_key2' => [ 'value' ] 
       } 
     } 
+3

일치하는 방법? Stringwise, numericically, 대/소문자를 구별합니까? – TLP

+0

또한 들여 쓰기 개선에 조금 더 노력해야 코드가 더 읽기 쉽습니다. 당신을 돕는 사람들에 대한 존경심이 아니라 자신을 위해서. – TLP

+0

Stringwise, 내가 시도한 방법은 정말 어리 석다. 도움이 될 것이라고 확신하지 못한다. – PYPL

답변

1

먼저 정의한 해시에 올바른 구문이 없습니다. 그것은해야 뭔가 같은 :

%hash =('Key1' => { 
         'Sub_key1' => [ 'value' ] 
        }, 

      'key2' => { 
         'Sub_key2' => [ 'value' ] 

        } 
); 

당신이 해시 참조를 사용하지 않는 한 (예를 들어, $ 해시 = {....}).

당신이 them.Anyway을 비교 한 다음에 두 개 이상의 값을 저장 할 수 있습니다 때문에 배열을 사용
@array =(); 
foreach $key (keys %hash){ 
    foreach $subkey (keys %{$hash{$key}}) { 
     push(@array, $subkey); 
    } 
} 

, 당신은 할 수 있습니다 :

을 이제, 하위 키 반복하는 당신이해야 할
if ($array[0] eq $array[1]){ 
    print "Match"; 
} 

해시에 하위 키가 두 개만 있기 때문입니다. 더 많은 것이 있으면이 배열을 반복해야합니다.

관련 문제