replaceAll.pl

文字列置換をするPerlプログラムを作るには、まず最初に標準入力をそのまま出力するプログラムからはじめればいい。

#!/usr/bin/perl
while(<STDIN>) {
  print;
}

置換をするためには、次のように指定を print; の前に挿入すればいい。こうすると読み込んだ文字列に対して、置換処理をしてくれる。

s/$ARGV[0]/$ARGV[1]/go;

このあたり、スクリプト言語というかPerlに慣れていないと、違和感があります。置換対象の文字列を明示的に指定しなくてもいい、というのがなんとも不思議です。

できあがったプログラムは replaceAll.pl という名前で保存したとすると、下記のように使います。

$ replaceAll.pl 検索文字列 置換文字列 < 対象ファイル

ちょっとしたツールは、シェルスクリプトでけっこう頑張っているのですが、Perlでもいいかなぁ、と最近思いつつ、最終的にはJavaで実装しておいたほうが何かといいんだよなぁ、とも思っています。開発環境的にはJavaの方が充実していますし、オブジェクト指向プログラミングもしやすいので。ただ、問題なのは、ちょっとしたツールにオブジェクト指向が必要なのか、みたいなところでしょうか。再利用性はほとんど考慮する必要がないので、ベタに手続き型で書いてしまった方がよっぽど速くプログラムが完成してしまうという気がしています。まぁ、ぼちぼちやりますけど。

同じタグの記事: Perl
同じカテゴリの記事: Program
関連書籍: Perl