好吧,这是一个 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}
值。
我做错了什么(毫无疑问是显而易见的)事情?我看到过关于每个人如何“脆弱”的评论 - 是这样吗?
最佳答案
如果您已经有了您期望的“ key ”,请检查它是否存在并使用它...
另外,总是使用use strict;使用警告;
#!/usr/bin/perl
use strict;
use warnings;
my $proj_code= 'dis';
my $url;
my %project_keys = (
cd => "continuous_delivery",
cm => "customer_management",
dem => "demand",
dis => "dis",
do => "devops",
sel => "selection",
seo => "seo"
);
$url = "http://projects/$project_keys{$proj_code}/setter"
if exists $project_keys{$proj_code};
print "url: $url\n";
输出:
url: http://projects/dis/setter
关于perl - 我需要重置 Perl 哈希索引吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22339226/