open( FH, 'MAH' ) or die "$!";
while ( $lines = <FH> ) {
$SSA = substr( $lines, 194, 9 );
open( FH1, 'MAH2' ) or die "$!";
while ( $array1 = <FH1> ) {
@fieldnames = split( /\|/, $array1 );
$SSA1 = $fieldnames[1];
$report4 = $fieldnames[0];
if ( $SSA =~ /$SSA1/ ) {
$report5= $report4;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我试图从 MAH 文件中提取“SSA”值并在 MAH2 文件中搜索该值。如果找到,则返回“report4”值。我能够获得输出,但需要大量时间来处理。有什么方法可以优化代码使其快速完成?
我的每个文件都有 300,000 条记录,文件大小为 15 MB。目前需要5个小时来处理
perl ×1