前回の(1)はこちらから。 encodingプラグマの仕様変更とその対策 Perl 5.26には、ほかにも古いバージョンのPerlからアップグレードするとエラーになる変更がいくつかあります。encodingプラグマの仕様変更もその一つです。 従来はencodingプラグマにエンコーディングを渡しておけば、UTF-8以外の文字コードで書かれたモジュールやライブラリでも適切にPerlの内部表現に変換されていました。 # 日本語Windows環境でShift_JISのままコードを書いても、 # encodingを使えば正規表現などを正しく扱えた use encoding "cp932"; my $string = "表示"; $string =~ s/表/掲/; # プラグマなしだと5C問題[6]でエラー print length($string); # 2 この挙動はPerl 5.22で廃止対