当前位置: 代码迷 >> 综合 >> 剔除bug
  详细解决方案

剔除bug

热度:64   发布时间:2024-01-20 00:23:40.0

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重复了,自然就得不到想要的结果了

  相关解决方案