古い記事
ランダムジャンプ
新しい記事
Perlでカタカナひらがな変換をやろうと思ったら、
Unicode::Japanese を使うのが手軽なのかな。

- 山科 氷魚 / Unicode-Japanese - search.cpan.org
  http://search.cpan.org/dist/Unicode-Japanese/

とりあえず使うことにしてみた。
以下、適当なサンプルプログラム。
#!/usr/bin/perl
# 入力はEUC-JPのTSVで住所とその読み仮名(カタカナ)。
# 出力はUTF-8のTSVで住所とその読み仮名(カタカナ+ひらがな)。
use strict;
use warnings;
use Unicode::Japanese;
while(<>) {
    chomp;
    my @col = split("\t", $_);
    my $addr_str = Unicode::Japanese->new($col[0], 'euc-jp')->get;
    my $yomi = Unicode::Japanese->new($col[1], 'euc-jp');
    my $kata_str = $yomi->get;
    my $hira_str = $yomi->kata2hira->get;
    print "$addr_str\t$kata_str\t$hira_str\n";
}


追記060808:
subtechグループ - Bulknews::Subtech - [Perl]
http://subtech.g.hatena.ne.jp/miyagawa/20060808/1154963176
Unicode 文字列にして、普通に tr/// でやればいいような。
なるなる。
perl v5.8.8 で以下のスクリプトで確認。
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
binmode STDOUT => ":utf8";my $str = "ョヮィ・シックス・アパート";
$str =~ tr/ァ-ン/ぁ-ん/;
print $str,"\n";

ところで、「ヴ」はどうしたものか、と思っていたらこんなコメントが。

http://b.hatena.ne.jp/entry/
http%3a//nais.to/~yto/clog/2006-08-07-5.html

2006年08月08日 kits
use Jcode; use utf8; jcode($str)->tr('ぁ-?', 'ァ-ヴ'); を考えました。
ううう、「う゛」が一文字になったやつ(\xE3\x82\x94)が入力できません
(上だと「?」になっちゃってます)。
Unicode::Japanese でも扱ってないみたいだし、まあいいか。

手軽な方法があって安心しました。情報ありがとうございました。
ただ、すべての開発環境の emacs で utf-8 が使えるようになっていない
ので、ソースを utf8 化するのはもうちょっと先になりそうです。

最近やっと perl 5.8.x が常用できる環境になったろころで、
utf8 まわりの(バッド)ノウハウはこれから吸収していきます。