如何测试从哈希表访问返回的值



我正在迭代一个哈希表,我使用键作为访问权限来检索值。我想测试访问的值以查看它是否与特定字符串匹配,但是我在 if 条件中没有得到任何 print 语句来测试该值是否为特定字符串。

假设我有一个名为 margin_hash 的哈希表,其中包含 Key 和值对,其中键是保证金名称,值是 一个字符串。

foreach my $margin_name (keys %margin_hash) {
my $type = $margin_hash{$margin_name}{"MARGIN TYPE"};
if ( $type eq "DELAY") {
print "FOUND a DELAY marginn";
}
}

我知道我的哈希表包含一个值"延迟"。然而似乎 如果条件不知何故不起作用?

我期望输出打印找到延迟边距

$type eq "DELAY"检查$type的值是否与DELAY,(或字符串化为此类字符串的东西(的值。

$type =~ "DELAY"(一种奇怪的$type =~ /DELAY/编写方式(检查$type的值是否与正则表达式模式DELAY匹配。如果值是包含DELAY的字符串(或字符串化为此类字符串的内容(,则 if 将匹配。

由于$type =~ "DELAY"为真,$type eq "DELAY"为假,因此您有一个不是DELAY的字符串,但包含DELAY。也许您有一个尾随换行符? 从文件中读取chomp行。

最新更新