打印哈希值

时间:2014-10-05 21:07:34

标签: perl hash key-value

我有一组哈希值,它们是具有相同数量元素的数组。它们彼此相互打印,但我想将它们彼此相邻打印。

在下面的输出中,以clakin_p,clkin_N和phy2clb_scan_out开头的列是不同的数组,它们是hash的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

1 个答案:

答案 0 :(得分:1)

您的语句print "$hash{$n}\n";在结尾处包含换行符(\n)。这会导致每个哈希值打印在单独的行上。只需删除换行符即可。

此外,Perl中很少需要传统的for循环来跟踪迭代器,并且是代码中潜在的错误来源。更好的是:

foreach my $pin (@pin_names) {
    foreach my $out (@output) {
        if ( $pin eq $out ) {
            print "$hash{$n} ";
        }
    }
}