$ echo 'test' | perl -MUnicode::Japanese -lne 'print Unicode::Japanese->new($_)->h2z->get;' test $ echo 'test' | perl -MUnicode::Japanese -lne 'print Unicode::Japanese->new($_)->z2h->get;' test
行数の多いファイルを読み込む場合の効率考えれば 1 行ごとに Unicode::Japanese->new() を呼び出すのはちょっともったいないような気もする。少し長くなるけど、以下のようにしてみる。
$ cat | perl -MUnicode::Japanese -lne 'BEGIN{$s = Unicode::Japanese->new();} print $s->set($_)->h2z->get;' 1 1 # # + + ^C
便利といっても、Unicode::Japanese の導入が必要。半角全角の対応をいちいち書き下す手間を気にならなければ以下のようにもできる。この場合は utf8 モジュールが必要だけど、これは標準モジュール。
$ echo '0123' | perl -Mutf8 -lpe 'tr/0-9/0-9/; utf8::encode($_);' 0123 $ echo '0123' | perl -Mutf8 -lpe 'BEGIN{binmode STDOUT, ":utf8";} tr/0-9/0-9/;' 0123