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

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

print Dumper (\%h);

次の出力を作成します。

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

なぜこうなった?私はPerl5.12.3を持っています。

御時間ありがとうございます。

4

1 に答える 1

12

すべてのハッシュキーは文字列です。ハッシュキーとして使用される非文字列値は文字列に強制変換され、そのコンテキストにundefなります。''

于 2012-06-27T14:51:36.460 に答える