Perl でひらがなをカタカナに変換する

EUC限定で全角のみに対応。

sub hiragana2katakana{
    my $ascii = '[\x00-\x7F]';
    my $twoBytes = '[\x8E\xA1-\xFE][\xA1-\xFE]';
    my $threeBytes = '\x8F[\xA1-\xFE][\xA1-\xFE]';
    my @chars = $_[0] =~ /$ascii|$twoBytes|$threeBytes/og;
    
    my $ret;
    foreach(@chars){
        if(/^\xA4([\xA1-\xF3])$/){
            $ret .= "\xA5".$1;
        }
        else{
             $ret .= $_;
        }
    }
    return $ret;
}

出力例

print &hiragana2katakana("出力例はこんな感じ");
# 出力例ハコンナ感ジ

参考にしたページは...