m, s, y (tr) のデリミタ


演算子 m, s, y, tr では,文字列を区切る文字 (デリミタ) として / を用いることが多いが,それ以外の文字を用いることもできる。実際に使える文字はバージョンによって違うこともあるので,自分の使う Perl で確認すること。

  s|文字列|置換文字列|
  s!文字列!置換文字列!
  s#文字列#置換文字列#

区切り文字に指定した文字を文字列中で指定するときには \ でエスケープする。/ 以外の文字を区切り文字とすれば,/ は区切り文字としての意味を失うので,エスケープしなくともよくなる。

  s/\//:/g       #文字列中にある / をエスケープ
  s#/#:#g        #区切り文字を # に変えたのでエスケープは不要

括弧を区切り文字とすることもできるが,その場合は,下に示すように,対応する括弧を組にして使う。「文字列」と「置換文字列」を囲む括弧は同じものでなくともよい。

  s(文字列)(置換文字列)
  s<文字列>(置換文字列)
  s[文字列]{置換文字列}