剔除bug

来源:互联网 发布:甲乙丙景观大数据很差 编辑:程序博客网 时间:2024/04/19 17:01

1.匹配从行首开始一定要加上^。

例如

匹配

Frame No.

正确为

$var =~ m/^/s*Frame/s+No/./s*/

若不加^则,可能匹配到

The status of Frame No. is

 

2.程序中要用到循环

for (my $i = 0;$i <@$lines;$i++)
 {
  if($lines->[$i] =~ m/^/s*(/d+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s+(/S+)/s*/)
  {
   
   
   for (my $j = 2;$j <= 33;$j++)
   {
    no strict 'refs';
    if($$j ne "N")
    {
     $counter++;
     if($counter eq 1)
     {
      $fault_flag = 1;
      WriteTitle;
      WriteCommand($line1);
     }
     my $k = $j - 2;
     print $wfd_fault "槽位号:$1,$k异常/n";
    }
   }
   use strict 'refs';
  }
 }

我在写了第一个循环后,发现还需要用一个,于是习惯性的又写了一个$i ,这样跟上轮循环的 $i重复了,自然就得不到想要的结果了