我正在尝试从 perl 中的 sub 获取 2 个不同的哈希值。哈希在 sub 的输出中混合在一起。这是我的简化代码:
#!/usr/bin/perl
use strict;
use warnings;
sub sub1 {
my (%h1, %h2);
$h1{'1a'}++;
$h1{'1b'}++;
$h2{'2a'}++;
$h2{'2b'}++;
while ( (my $key, my $value) = each %h1 ){
print "key: $key, value: $value\n";
}
print "\n";
return (%h1, %h2);
}
my (%r1, %r2) = sub1();
while ( (my $key, my $value) = each %r1 ){
print "key: $key, value: $value\n";
}
输出:
key: 1b, value: 1
key: 1a, value: 1
key: 1b, value: 1
key: 2a, value: 1
key: 2b, value: 1
key: 1a, value: 1
为什么会这样?我该如何纠正?谢谢。