2

我试图使用列表/数组对哈希进行排序

my $hash =  {     cta => '01340031810312074443',
                  ttr => '001',fil => '0000',     
                  ref => '0000',
                  mef => '0000000000000060000',
                  mch => '0000000000000000000',
                  nli => '00000000',
                  tdi => 'V',
                  ndi => '006126952',
                  tdip => 'V',
                  ndip => '006126952',
              };

@order = qw(cta ttr fil ref mef mch nli tdi ndi tdip ndip);

我们知道 Perl 不会将订单保存在哈希中,但我需要按该顺序打印。我怎样才能做到这一点?

谢谢

4

3 回答 3

7

如果您只想打印值而不是键,您还可以使用哈希切片:

use feature 'say';
say join "\t", @hash{@order};
于 2013-04-30T22:38:28.160 回答
2
for my $key (@order) {
   print $key . ": " . $hash->{$key} . "\n";
}
于 2013-04-30T22:31:05.773 回答
1

尝试这个:

for (@order) {
    print $_, " => ", $hash->{$_}, "\n";
}
于 2013-04-30T22:30:39.093 回答