s/// と m// での oオプション とは
oオプションは、対象となるパターンが変数を含んでいても、その変数は一回しか評価しない。
これによって、実行時のパターンの再評価を避けるころができる。(再評価しないためスピードアップ)
次の例では、$s =~ /$arg/o の$argの内容展開をループで毎回評価せず、はじめの一回だけ評価する。
$arg = "abc"; open(FH, "xyz.txt"); while($s =) { if ($s =~ /$arg/o) { print $s, "\n"; } }