open

入出力ファイルの文字コードセット、改行コードを指定する。

use open IN => ":encoding(cp932)", OUT => ":encoding(utf8)";
use open IO => ":utf8";      IOモードのデフォルトをutf8モードにする
use open IO => ":crlf";   アスキーモードIO時の改行コードをCR+LFにする
use open IO => ":bytes";  IOモードのデフォルトをバイナリモードにする
など

"shift-jis"; も使えるが、"cp932" の場合はMicrosoft拡張(①とか)も正しい漢字として扱ってくれる("shift-jis"の場合に、これらの漢字を変換しようとするとワーニングが表示される)。
use code ":encoding( )" を記述しない場合は、utf8 がデフォルト。

この設定は、ファイルハンドルを介したファイルの読み書きに反映されるだけで、ファイルやディレクトリをオープンする場合のファイル名/ディレクトリ名の文字セット変換は行われない。
漢字を含むファイル/ディレクトリをオープンする場合のファイル名/ディレクトリ名の文字セットは、Jcodeなどを使って明示的に変換する必要がある。

例)Windowsでの標準的な設定
  use open IO => ":crlf",":encoding(cp932)";