我有两个哈希,当我加入它们时,我得到一个额外的元素,"undef".为什么?
#!/usr/bin/perl
use Data::Dumper;
my %foo = (
"disable-notify",
"start=s",
"end=s"
);
test();
sub test() {
my %bar = (
"notify-disabled",
"durtion=s",
"help",
"my-stuff"
);
my %poop = (%foo, %bar);
print Dumper(%poop);
}
Run Code Online (Sandbox Code Playgroud)
运行代码给了我:
$VAR1 = 'notify-disabled';
$VAR2 = 'durtion=s';
$VAR3 = 'help';
$VAR4 = 'my-stuff';
$VAR5 = 'disable-notify';
$VAR6 = 'start=s';
$VAR7 = 'end=s';
$VAR8 = undef;
Run Code Online (Sandbox Code Playgroud)
这个undef来自哪里?
小智 5
好吧,首先,你的哈希语法有点不稳定.如果你用大箭头表示法,它会更明显:
my %foo = (
"disable-notify" => "start=s",
"end=s"
);
Run Code Online (Sandbox Code Playgroud)
和
my %bar = (
"notify-disabled" => "durtion=s",
"help" => "my-stuff"
);
Run Code Online (Sandbox Code Playgroud)
因此,您有一个非偶数的键值对,因此"end = s"被指定为未定义值的键.简而言之,你做得不对.