为什么undef变成空字符串?

时间:2012-06-27 14:50:13

标签: perl

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。

感谢您的时间。

1 个答案:

答案 0 :(得分:12)

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