1

このコードは、私が持っているテキスト ファイルからキーワード「fun」を取得し、キーワードの前後の 20 文字を出力します。ただし、前の2行と次の2行も印刷したいのですが、その方法がわかりません。これでコードを変更する方が簡単なのか、ファイル全体を一度に読み取るだけなのか、私にはわかりませんでした。

{my $inputfile = "file";
$searchword = 'fun';
open (INPUT, '<', $inputfile)  or die "fatal error reading the file \n";
while ($line1=<INPUT>)
{  
#read in a line of the file
 if ($line1 =~m/$searchword/i)
 {print "searchword found\n";
  $keepline = $line1;
    $goodline =1;

    $keepline =~/(.{1,20})(fun)(.{1,20})/gi;

    if ($goodline==1)
    {&write_excel};
 $goodline =0;                
 }
4

2 に答える 2