# # カタカナ/ひらがな 変換 # # $mod: 'kh' のときは[カタひら],それ以外は [ひらカタ] # 1997.09.27 aiba@vacia.is.tohoku.ac.jp sub kata_hira { local($str, $mod) = @_; # EUC code: # hira: a4 a1-f3 # kata: a5 a1-f3, f4:ヴ f5:ヵ f6:ヶ local($chr, $out); $out = ""; while($str =~ /./) { $chr = unpack("C", substr($str,0,1)); if($mod eq 'kh' && $chr == 0xa5 ) { $out .= pack("C", 0xa4) . substr($str,1,1); $str = substr($str,2); } elsif($mod ne 'kh' && $chr == 0xa4 ) { $out .= pack("C", 0xa5) . substr($str,1,1); $str = substr($str,2); } elsif(0x80 <= $chr) { $out .= substr($str,0,2); $str = substr($str,2); } else { $out .= substr($str,0,1); $str = substr($str,1); } } return $out; } 1;