よくワンライナで、

% perl -pi -e 's/foo/bar/' file

とかやって、fileの中身の foo を bar に置換するけど、それをスクリプトでやりたいときはどうするんだと同僚に聞かれて実験してみた。当たり前だけど、下記のようにしたら出来た。これって正しいのだろうか。

#!/usr/local/bin/perl -pi

use strict;
s/foo/bar/;
追記:
Perlクックブックに載っていた模様。
場所は7章の「レシピ7.9 ファイルを-iスイッチを使って、その場で更新する」。

やり方は↑のやつでいいみたい。shebangにオプションでよいようです。
ちなみにあなたが漢であるならば必要ないが、「-i」オプションを「-i.orig」とするとバックアップのファイル(filename.orig)を勝手に作ってくれるので吉。


Perlクックブック〈VOLUME1〉
トム クリスチャンセン ネイザン トーキントン Tom Christiansen Nathan Torkington Shibuya Perl Mongers ドキュメントシステム
オライリージャパン
売り上げランキング: 142559
おすすめ度の平均: 5.0
5 Perlプログラマ必携本(ご存知でしょうけど)


Perlクックブック〈VOLUME2〉
トム クリスチャンセン ネイザン トーキントン Tom Christiansen Nathan Torkington Shibuya Perl Mongers ドキュメントシステム
オライリージャパン
売り上げランキング: 85814
おすすめ度の平均: 3.0
3 あまり使わない部分が集まってしまった下巻