我一直在使用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";
}
Run Code Online (Sandbox Code Playgroud)
对于某些脚本,我得到第一个输出(额外的键),有时我得到另一个(额外的值)
输出:
a
a
b
b
c
c
Run Code Online (Sandbox Code Playgroud)
要么
1
2
3
a
b
c
Run Code Online (Sandbox Code Playgroud)
这是Perl的"功能"吗?我如何解决它?
谢谢!
你错过了keys从哈希中获取密钥的关键字.
for my $key (keys %hash) {
print $key."\n";
}
Run Code Online (Sandbox Code Playgroud)
否则,哈希变为平坦的列表,并返回所有键和值.
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |