【发布时间】:2014-03-12 14:17:43
【问题描述】:
好的,这是一个 N00b 问题,但它让我很难过:
我有以下 Perl 代码:
%project_keys = (
cd => "continuous_delivery",
cm => "customer_management",
dem => "demand",
dis => "dis",
do => "devops",
sel => "selection",
seo => "seo"
);
print "proj_code is $proj_code\n";
while ( ($key, $value) = each %project_keys ) {
if ($key == $proj_code) {
$url = "http://projects/".$project_keys{$key}."/setter";
last;
}
}
$proj_code 总是以相同的('dis') 传递,打印行显示了这一点。
但是,每次运行时,project_keys{$key} 都会得到不同的值。
我做错了什么(毫无疑问是显而易见的)?我看过 cmets 关于每个人是如何“脆弱”的——是这样吗?
【问题讨论】:
-
为什么不说:
$url = "http://projects/$project_keys{'dis'}" if exists $project_keys{'dis'};? -
另外,你应该对字符串使用
eq,而不是==。见perlop