小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

s/// と m// での oオプション とは

oオプションは、対象となるパターンが変数を含んでいても、その変数は一回しか評価しない。
これによって、実行時のパターンの再評価を避けるころができる。(再評価しないためスピードアップ)


次の例では、$s =~ /$arg/o の$argの内容展開をループで毎回評価せず、はじめの一回だけ評価する。

$arg = "abc";
open(FH, "xyz.txt");
while($s = ) {
    if ($s =~ /$arg/o) {
        print $s, "\n";
    }
}