2014-10-05 4 views
-1

동일한 수의 요소를 가진 배열 인 해시 값 집합이 있습니다. 그들은 서로 아래에 인쇄하지만, 나는 서로 옆에 인쇄하고 싶습니다.해시 값 인쇄

아래 출력에서 ​​clakin_p, clkin_N 및 phy2clb_scan_out으로 시작하는 열은 해시의 diff 값인 서로 다른 배열로, 서로 옆에 있어야합니다.

for (my $m = 0; $m <= ($#pin_names); $m++) { 
    for (my $n = 0; $n <= ($#output); $n++) { 
     if ($pin_names[$m] eq $output[$n]) { 
      print "$hash{$n}\n"; 
     } 
    } 
} 

전류 출력 : -

clkin_P 
     1 
     1 
    clkin_N 
     0 
     0 
    phy2clb_scan_out 
     H 
     H 
+0

다른 기술을 시도 해 봤니? –

+0

위의 코드를 기반으로 무언가를 바꿀 수있는 것을 제안 할 수 있습니까? –

+0

글쎄, 당신은 현재'$ hash {$ n}'을 그리고 나서 줄 바꿈을 인쇄하고 있습니다. 값을 서로 옆에 인쇄하려면 줄 바꿈을 사용하지 마십시오. –

답변

1

명세서 print "$hash{$n}\n";는 말 (\n)에서 개행 문자가 포함되어 있습니다. 이렇게하면 각 해시 값이 별도의 줄에 인쇄됩니다. 줄 바꿈을 제거하기 만하면됩니다.

또한 반복자를 추적하는 전통적인 for 루프는 Perl에서는 거의 필요하지 않으며 코드에서 실수를 유발할 수 있습니다. 훨씬 더 나은이 될 :