我有一些像这样的代码:
print "key $_ - $hJobT{$_}\n" foreach keys %hJobT;
%hJobT = map { $_ => 1 } %hJobT;
print "key $_ - $hJobT{$_}\n" foreach keys %hJobT;
当我运行程序并打印结果时,我得到:
key office - 1
key recon - 1
key office - 1
key 1 - 1
key recon - 1
前两个结果来自第一个打印语句并且是预期的。
该key 1 - 1
部分不是预期的。
澄清一下 - 代码在一个循环中,当它迭代时,键值在某些条件下会增加。出于测试目的,我在循环末尾放置了一个退出语句,因此它只显示第一次迭代结果,因此它们是“1”。(就好像我没有毫无意义地将 1 映射到 1。)关于为什么我得到 1-1 映射的任何想法?