我有令人费解的行为,Perl 凭空制造了一个“空”散列键。我只是从现有的哈希中获取密钥并使用相同的密钥创建一个新的哈希。尽管原始哈希中只有 15 个密钥,但新形成的哈希获得了神秘的第 16 个密钥。
这是相关代码:
DO_SOMETHING(\%Hash1, \%Hash2);
sub DO_SOMETHING {
my %Hash3 = undef;
my $count = 0; # reset counter
my ($Hash1Ref, $Hash2Ref) = @_; # grab arguments to subroutine
my %Hash1 = %$Hash1Ref; # dereference hash #1
my %Hash2 = %$Hash2Ref; # dereference hash #1
my @Hash2keys = sort {$a <=> $b} keys %Hash2; # grab keys from Hash #2
print "Hash #2 keys = ", join (',', @Hash2keys), "\n"; # print keys in Hash # …Run Code Online (Sandbox Code Playgroud)