永遠に外国人でいたい

思考ログと技術メモ

Perl::ファイルがShift JISで書かれていたときの正規表現表記方法

Shift JISで書かれたPerlファイルの修正をしようと思ったときに、~を打つことが出来なかったので代わりにを使った。

$price = "12345";
$price =~ s/(.*¥d)(¥d¥d¥d)/$1,$2/g;

本当はこのように書きたかったが、~を入力すると、

現在のファイルのエンコーディングでは正しく扱えない文字を挿入しようとしています。このまま文字を挿入しますか? 書類のエンコーディングをユニコードに変更すると情報を失うことなく文字を挿入することが可能です。 UTF-16へ変更 UTF-8へ変更 挿入

と拒否られる。いろいろ試した結果、を使うことで解決した!

$price = "12345";
$price =‾ s/(.*¥d)(¥d¥d¥d)/$1,$2/g;