# z2hkana1.pl
# 内容 : 全角カナを半角カナに変更する
# 前提 : 入力ファイルはshift-jis、スクリプトはshift-jisとすること
#        「jperl」でのみ動作可能(通常のperlでは動作不可)
# Copyright (c) 2011 Mitsuo Minagawa, All rights reserved.
# (minagawa@fb3.so-net.ne.jp)
# 使用方法 : c:\>jperl z2hkana1.pl
#

open(IN1,"input_sjis.txt");
open(OUT1,">output_sjis.txt");

while	($line1	=	<IN1>)	{
		chomp($line1);
		$line1	=~	s/(?:\x0D\x0A|[\x0D\x0A])?$/,/;
		@in1	=	map {/^"(.*)"$/ ? scalar($_ = $1, s/""/"/g, $_) : $_}
					($line1 =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g);
		$temp	=	$in1[2];
#
# 濁音の処理
#
    $temp	=~	s/([ガギグゲゴザジズゼゾダヂヅデドバビブベボ])/pack("n",unpack("n",$1) - 1)."゛"/ge;
#
# 半濁音の処理
#
    $temp	=~	s/([パピプペポ])/pack("n",unpack("n",$1) - 2)."゜"/ge;
#
# ヴ の処理
#
    $temp	=~	s/ヴ/ウ゛/g;
#
# 全角を半角に
#
    $temp	=~	tr/。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゛゜/\xA1-\xDF/;
#
# 全角スペースは半角スペースに
#
    $temp	=~	s/　/ /g;
#
# 出力
#
	$in1[2]	=	$temp;
	$line1	=	join("\t",@in1);
	print OUT1	"$line1\n";
}
close(IN1);
close(OUT1);


