文字コードの種類
Perl で扱える文字コードは多数あるのですが、日常的なプログラミングでは以下の2つを覚えておけば大丈夫です。ファイルの入出力、画面の出力全てに共通して使えます。
- Shift_JIS の場合: encoding(cp932)
- UTF-8 の場合: encoding(utf8)
ファイル入出力の追加演習
さて今回のサンプルプログラムはあまりにもつまらなかったと思いますので、余力のある方は、もう少し楽しい (かもしれない) おまけのサンプルプログラムも試してみて下さい。こちらは、読み込んだ文字を逆さにして出力します。
#Perl ファイル入力、逆さに出力
use strict;
use warnings;
use utf8;
binmode STDOUT, 'encoding(utf8)'; #Windows の場合は utf8 -> cp932
my ($fh, $fh2);
open ($fh, '<:encoding(cp932)', 'text01.txt')
or die "ERROR: open: text01.txt: $!\n"
;
open ($fh2, '>:encoding(utf8)', 'text01_reverse.txt') #文字コードも変更してみる
or die "ERROR: open: text01_reverse.txt: $!\n"
;
while(<$fh>){
$_ =~ s/[\r\n]//g;
print $fh2 reverse split(//, $_);
print $fh2 "\r\n";
}
close $fh;
close $fh2;
プログラムを実行した後は、ファイルがどのように書き出されているか確認して下さいね。