Perl在哈希中插入不需要的键

时间:2014-02-20 02:53:38

标签: macos perl hash

我一直在使用Perl这个问题而且它真的很烦人。

平台:Mac OS X 10.7; Perl v5.12.3

示例脚本

#!/usr/bin/perl

undef %hash;

@letters = qw / a b c /;
@numbers = qw / 1 2 3 /;

for($i=0;$i<=2;$i++){
    $hash{$letters[$i]}=$numbers[$i];
}

foreach $key (%hash) {
    print $key."\n";
}

对于某些脚本,我得到第一个输出(额外的键),有时我得到另一个(额外的值)

输出:

a
a
b
b
c
c

1
2
3
a
b
c

这是Perl的“功能”吗?我该如何解决?

谢谢!

2 个答案:

答案 0 :(得分:6)

您错过了keys关键字以从哈希中获取密钥。

for my $key (keys %hash) {
    print $key."\n";
}

否则,散列会变为列表,并返回所有键和值。

答案 1 :(得分:0)

建议使用“键”的答案是正确的,我只是想提醒你总是把 '使用严格;'和'使用警告;'在脚本的开头。