Perl入門   No.17


4.10.2 置換演算子
 
同様に、パターンマッチを利用してよく使われるものに、置換演算子があります。
s///g ( g は、パターンマッチングを続けるという意味)
 
という形をしています。UNIXやLinuxで、sed というプログラムがありますが、まったく同じことです。
 
例えば、文中の「です」を「だ」に変えたい場合は、
sed s/です/だ/g sample.txt
 
というふうに sed を使いますね。それと同じです。
perl の中では、
while(<IN>){
  s/です/だ/g;
  print;
 }
 
とすると、文中の「です」がすべて「だ」になって示されます。
 
掲示板などでは必需品でしょう。書き込みの時には、改行キーとして「\n」が入ります。しかしそれをブラウザで示すためには、「<BR>」に変更しないと改行して見えません。そこで、CGIプログラムの中にこの置換機能を埋め込みます。
s/\n/<BR>/g;
 
という具合です。試しに先ほどの例で、
#!/usr/bin/perl

open(IN."test.dat");
while(<IN>){
   s/信長/吉宗/g;
   s/家康/隆盛/g;
   print;
 }
 close(IN);
 
として実行してみましょう。信長が吉宗に、家康が隆盛に入れ替わっているでしょうか。