文字の扱い
- perlの内部で取り扱う文字列は内部文字列として扱っている
- 内部文字列としてはflagged UTF8というものを用いている
- decode_utf8($str)を用いれば内部文字列に変換する事が出来る
- use utf8を用いた場合には文字列リテラルは内部文字列を作り出す
- 逆にバイナリ表現に戻す場合(DBに戻す場合など)にはencode(ENCODING, $str)を用いる
- 内部文字列を直接printしようとした際:'Wide character in print ~'→encodeを行う必要がある
- read や<$fh>はバイナリ列を取り扱う
- 試して無いけど出来るのかな
open時にエンコーディングを指定する open(my $fh, '<:encoding(utf8)', $path) or die;