基本的に、私はhtmlファイルをループして、いくつかの正規表現を探しています。それらは一致しますが、すべてのファイルに一致が含まれるとは限りませんが、ループが実行されると、すべての反復に同じ一致が含まれます(そのファイルに含まれていない場合でも)。$ 1を使用することにより、各反復を通じて持続していると思います。
実際の試合の直後に任意の正規表現を使用してリセットしようとしましたが、うまくいかないようです。私がそのアイデアを得たスレッドには、ベストプラクティスや元の質問の問題について多くの議論などがあるように思われたので、コードに具体的なアドバイスを求める価値があると思いました。それはおそらく素晴らしい方法で書かれていないでしょう:
# array of diff filenames
opendir(TDIR, "$folder/diff/$today") || die "can't opendir $today: $!";
@diffList = grep !/^\.\.?$/, readdir(TDIR);
closedir TDIR;
# List of diff files
print "List of Diff files:\n" . join("\n", @diffList) . "\n\n";
for($counter = 0; $counter < scalar(@diffList); $counter++) {
# Open diff file, read in to string
$filename = $diffList[$counter];
open FILE, "<", "$folder/diff/$today/$filename";
while(<FILE>) {
$lines .= $_;
}
close FILE or warn "$0: close today/$filename: $!";
# Use regular expressions to extract the found differences
if($lines =~ m/$plus1(.*?)$span/s) {
$plus = $1;
"a" =~ m/a/;
} else {$plus = "0";}
if($lines =~ m/$minus1(.*?)$span/s) {
$minus = $1;
"a" =~ m/.*/;
} else {$minus = "0";}
# If changes were found, send them to the database
if($plus ne "0" && $minus ne "0") {
# Do stuff
}
$plus = "0";
$minus = "0";
}
「dostuff」の中にプリントを入れると、それは常に真であり、ファイルの1つにあるのと同じ2つの値を常に示します。うまくいけば、私は自分の状況を十分に説明しました。アドバイスをいただければ幸いです。