3
use strict;
use warnings;
use Data::Dumper;

my %h;
my $undef = undef;
$h{''}='test2';
$h{$undef} = 'test';

print Dumper (\%h);

创建以下输出:

$VAR1 = {
          '' => 'test'
        };

为什么会这样?我有 Perl 5.12.3。

谢谢你的时间。

4

1 回答 1

12

所有哈希键都是字符串。用作哈希键的非字符串值被强制转换为字符串,并在该上下文中undef变为。''

于 2012-06-27T14:51:36.460 回答