dポイントプレゼントキャンペーン実施中!

Perlで書かれたソースを以下のように書き換えたいと考えています。

【変換前】
my $message = Convert(
From => 'Shift_JIS',
To => 'utf-8',
Text => "(UTF-8の文字列)",
);

【変換後】
my $message = Convert( "(UTF-8の文字列)" );

ソース・ファイルは非常にたくさんあるのでスクリプトを組んで一括で行いたいと考えています。
容易く書き換えを完了できる方法はないでしょうか?

■前提条件
- 別の場所に出力するようにする場合はディレクトリ階層も維持する。
- インデントされている場合はインデントを保持する。

perl -pi -e 's///'で置換することが最も簡単そうですが、今回は複数行に渡るため、
s///の部分が非常に複雑になりそうです。なので、s///の部分をスクリプト・ファイルかなにかに
置き換えて、下記のように実行できればと考えているのですが、(何かしらのオプション)の部分が
よくわかりません。。

perl -i (何かしらのオプション) (ファイル名) (ソースファイル名)...

もちろんもっと良い方法があれば、その方法が良いです。
よろしくお願いいたします。

A 回答 (2件)

一応念のため:


#1 にはタイポがある. 本意は
BEGIN { undef $/; } s/Convert\(\K.*?text\s*=>\s*(".*?"),/$1/sg;
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

私の質問の仕方が悪かったのか少し違っていましたが、
いただいた内容を参考に色々試してみたところ、
期待通り置換を完了することが出来ました。

お礼日時:2012/09/26 17:12

細かい条件を無視すれば


BEGIN { undef $/; } s/Conver\(\K.*?text\s*=>\s*(".*?"),/$1/sg;
くらいでできるか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!