半角カナ対応

IRCで使われている、「いわゆる半角カナ」にはいろいろ種類がありますが、これをperlでコード変換しようとした場合、Encodeモジュールではコード変換に失敗してしまいます。
(2008年6月7日訂正)間違いでした。お詫びいたします。

この場合、skfを使うと解決できます。→skf - simple kanji filter プロジェクト日本語トップページ - OSDN
skfにはperlエクステンションがあり、エクステンションを使うと解決できます。

perlエクステンションの導入方法

上記のURLからソースコードをDLして、


>configure
>make perlext
これで、Skf.pmとSkf.soができるので、

>sh ./scripts/find-perl
の結果を元にSkf.pmとSkf.soを移動します。

私の環境では、結果が /usr/local/lib/perl5/5.8.8/mach/CORE でしたので、
/usr/local/lib/perl5/5.8.8 に Skf.pm を
/usr/local/lib/ に Skf.so をおきました。

動作確認用コード


#!/usr/local/bin/perl
use Skf;
my $test = Skf::convert("--ic=CP932 --oc=UTF-8", "\x82\xA0");
print $test . "\n";
"--oc"が出力コードですので、任意のコードに変えて「あ」が出ることを確認してください。
どういう指定をするのかは、ヘルプを見ましょう。