ここで私の他の質問に続いて..
Web ページの内容を 1 行ずつ読み取り、特定のパターンとの一致を試み、一致した場合はファイルに書き込む次のコードがあります。
foreach my $line (split qr/\R/, $mech->content) {
if ($line=~ m/t\/([A-Z]+)/){
print $fileHandle "$1\n";
}
}
一致する行を別の複数行変数に追加して、ループが終了したときにのみファイルに書き込むことができるかどうか疑問に思います。
そのようにしたい理由は、直接行うのではなく、次のサブルーチンを使用してデータをファイルに保存したいからです。
writeToFile("fileName.tmp","path",data);
これは私が書いたサブルーチンで、データをファイルに保存するだけでなく、次のチェックも行います。
- 指定されたパスが既に存在するか (必要に応じて作成するか)
- ファイルがディスク上に既に存在する場合は、これから書き込まれるファイルと比較します (ファイルが異なる場合にのみ書き込みます)。
したがって、この追加の変数を作成できれば、ディスクに書き込むファイルが 1 つ少なくなります。