2016-10-05 2 views
0

문제

(각) 루프에 해시 값이 두 번 인쇄됩니다.해시 값이 두 번 인쇄되는 이유


코드

use strict; 
use warnings; 

my %Hash; 

my $x=1; 

foreach my $item(1..9) { 
    $Hash{$x} = $x; 
    print scalar keys %Hash,",$item,",$x++,"\n" 
} 
$x=1; 
foreach my $iteml(%Hash){ 
     print $x++,"\n"; 
     print "||||$iteml------$Hash{$iteml}||||\n"; 
} 

print "@{[%Hash]}\n"; 

출력

1,1,1 
2,2,2 
3,3,3 
4,4,4 
5,5,5 
6,6,6 
7,7,7 
8,8,8 
9,9,9 
1 
||||6------6|||| 
2 
||||6------6|||| 
3 
||||3------3|||| 
4 
||||3------3|||| 
5 
||||7------7|||| 
6 
||||7------7|||| 
7 
||||9------9|||| 
8 
||||9------9|||| 
9 
||||2------2|||| 
10 
||||2------2|||| 
11 
||||8------8|||| 
12 
||||8------8|||| 
13 
||||1------1|||| 
14 
||||1------1|||| 
15 
||||4------4|||| 
16 
||||4------4|||| 
17 
||||5------5|||| 
18 
||||5------5|||| 
6 6 3 3 7 7 9 9 2 2 8 8 1 1 4 4 5 5 

질문

왜 이런 일이? 하나


버전

v5.10.0 built for x86_64-linux-thread-multi 

답변

9

, 당신은 을 통해 해시 자체 (%Hash)을 반복. 키와 값을 가져 오는 중입니다.

재미있는 점은 해시가 동일한 키와 값을 갖고 있다는 것입니다. 그래서 키와 값을 인쇄합니다. 그런 다음 값을 인쇄 한 다음 키로 사용합니다. 올바른 키이며 동일한 값을 사용합니다. 그래서 두 번 인쇄하는 것 같습니다 :)

+2

롤, 나는 바보, 건배! – 123

관련 문제