我正在尝试解析文件并收集不同模块中的不匹配类型并生成xls。下面是我需要解析的报告模式(但实际的报告模式并不简单,如下所示):
outsocket ports in design1 not in design2
a
b
Insocket ports in design1 not in design2
g
h
在日志中可以有许多设计名称(使用$module
推送到模块列表),但此模式不会更改。(<>
中的Insocket / outsocket / othertype端口不在{{1}中})
下面是我的核心代码。我遇到了这个代码的问题而且它无法正常工作(尤其是字符串连接),请帮我解决这个问题。
<>
答案 0 :(得分:0)
以下是一些猜测和一般性建议。我不确定这会解决你的问题,但它可能有所帮助:
前两个正则表达式在}
和${design1}}
中有一个额外的${design2}}
。不确定这是否存在于原始程序中,或者是否是在此处发布时出现的错误。
看起来您正在使用字符串连接来构建$result
变量的名称,因此您可以将该字符串用作另一个变量的名称,例如$type_i_n_code_module_a
。我强烈建议您减少混淆,改为使用哈希:
%result = ();
while ($line = <FH>) {
...
$result_key = $mismatch_type . "_code_ " . $module;
$result{$result_key} = $result{$result_key} . $line;
}
...
foreach $module (@module_list) {
foreach $each_mismatch (@mismatch_type_list) {
$result_key = $mismatch_type . "_code_ " . $module;
print FH2" $result{$result_key},";
}
}