• 締切済み

正規表現のo

http://ash.jp/perl/tips_perl01.htm のサイトに # URLエンコード $arg =~ s/(\W)/'%'.unpack("H2", $1)/ego; と書かれていましたが、最後のoの効果が分かりません。 $argが何という文字であったなら、そのoが有る場合と 無い場合の違いが分かるのか、具体的な$argの値と一緒に 説明してください。

みんなの回答

  • nightowl
  • ベストアンサー率44% (490/1101)
回答No.1

こんばんは。パターンマッチの際の「o」オプションは、 正規表現のコンパイルを最初の1回のみ(once)行うという意味で、 CGI 実行のパフォーマンスに関係するものです。 正規表現が変化しない場合、マッチのたびにコンパイルし直すのは無駄ですので このオプションを指定します。 また置換の際の「o」は、「パターンの中に変数があった時、 gオプションでの複数のマッチングの時に変数の値の展開を1度だけ行う」意味です。 上記の例はこれに該当するものです。

参考URL:
http://math.josai.ac.jp/~yamasaki/lit2/perl/perl05.html,http://www.bb.wakwak.com/~r360/cginote/bunpo/chapter04.html
ninmurai
質問者

お礼

ありがとうございました。 質問するカテゴリを間違えていました。

すると、全ての回答が全文表示されます。

関連するQ&A