今さらですがJcodeですっきり見やすくなりました
久しぶりに仕事でPerlを書いた。いったい何年間使ってるんだ?っていうくらいずっとメンテナンスしてきたフォームの受付CGI。今さらですが一応strictとwarningsでチェックをかけて細かいところの作法を手直ししたのと、Jcodeモジュールを使って文字コードのコンバート周りを修正してみた。
jcode.plを使っていた頃だと、こまごま文字コードをコンバートしてから処理して戻して・・・みたいなメンドクサイことを普通にそこかしこでやっていた。
#Shift_JISにコンバートしてから半角カナを全角に jcode::convert(\$input, 'sjis'); jcode::h2z_sjis(\$input); #全角英数字を半角英数字へ変換(EUCでないとうまく動作しない模様) jcode::convert(\$input, 'euc'); jcode::tr(\$input, '0-9A-Za-z', '0-9A-Za-z');
これを(ほんと今さらながら)Jcodeモジュールのコードに置き換えたので、だいぶすっきりしたと思うし見た目も分かりやすい。
my $j= Jcode->new(\$input)->tr('0-9A-Za-z', '0-9A-Za-z')->h2z->euc;
今はEncodeモジュールの使用が一般的なんだと思うので、少しずつそちらも学んでいきたい。