我正在编写一个Perl项目,面临的问题如下:我有一个很大的输入文件,其中有一个注释文件和一个收入字段。评论字段可以有DTN或Cluster Master DTN,这两个字段的收入都是300,可以计入它们自己的类别。以下是代码的一部分:
elsif ($comments == /DTN/i and $revenue == 300)
{
$class = 'DTN';
}
elsif ($revenue == 300)
{
if ($comments =~ /cluster master\+DTN/i)
{
$class = 'SLA Cluster Master + DTN';
}
elsif ($comments =~ /cluster master and DTN/i)
{
$class = 'SLA Cluster Master + DTN';
}
}在输出tho中,它将收入的数量计数为DTN字段的数量,并且它只将'cluster master+DTN‘的评论计数为SLA集群主机+ DTN,而不是'cluster Master and DTN’,后者也应该被计算在内。我不知道发生了什么,也不知道如何解决这个问题。还有没有其他人有同样的问题?
发布于 2016-06-30 01:21:48
第一个elsif ($comments == /DTN/i and $revenue == 300)全错了。
你想要elsif ($comments =~ /DTN/i and $revenue == 300)
或者,我怀疑实际上您可能希望elsif ($comments =~ /^DTN$/i and $revenue == 300)给您一个精确匹配,而不是$comments字符串中的任何位置的匹配,因为没有它,您将永远不会命中下面的$class=语句。
https://stackoverflow.com/questions/38106106
复制相似问题