对于处理多需求的程序,设置标志位就可以了
例如对于log语言版本的需求$id = 1 为 英文 , $id =2 为中文
先匹配要处理内容以前的任意一行,得到是中文还是英文,只用一个分支赋值就行。具体代码如下:
if($lines->[$i] =~ m//s*Clock/s*particular/s*status/)
{
$id = 1;
}
if($lines->[$i] =~ m//s*时钟详细状态/)
{
$id = 2;
}
if ($id eq 1 and $lines->[$i] =~ m//s*(phase/s+locked/s+status/s+=/s+)(/S+)/s*/) #是英文且匹配成功才处理,中文类似
{
if($2 ne "Trace")
{
$counter++;
if($counter eq 1)
{
$fault_flag = 1;
WriteTitle;
WriteCommand($line1);
}
print $wfd_fault "$1异常/n";
}
}