>>803-804
|| && or and
これらの演算子は短絡演算子って言って、演算子の左辺の結果が満たされた場合右辺は実行されないんよ。
つまり、行頭が ... で始まる行は、左辺の結果が真になるから右辺が実行されて $sample が含まれているかチェックされる。
含まれていたら、$target がセットされて、含まれていなければ $target がリセットされる。
行頭が、 ... で始まっていない行は、左辺の結果が偽になるから、右辺が実行されない。
だから、 $target の内容は、 ... で始まる行の結果に依存されて出力されるというわけ。