# z2h_all.pl
# 内容 : 全角文字(英数字、記号およびカナ)を半角文字に変更する
# 前提 : 入力ファイルはUTF-8(BOMなし)、
#        スクリプトはUTF-8(BOMなし)とすること
#        通常のperlで動作可能
# Copyright (c) 2011 Mitsuo Minagawa, All rights reserved.
# (minagawa@fb3.so-net.ne.jp)
# 使用方法 : c:\>perl z2h_all.pl
#

open(IN1,"input_utf8.txt");
open(OUT1,">output_utf8.txt");

use Unicode::Japanese;

while	($line1	=	<IN1>)	{

# CSV形式の $line1 から値を取り出して @in1 に入れる

	chomp($line1);
	$line1	=~	s/(?:\x0D\x0A|[\x0D\x0A])?$/,/;
	@in1	=	map {/^"(.*)"$/ ? scalar($_ = $1, s/""/"/g, $_) : $_}
				($line1 =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g);

#3番目の項目に全角文字があるものとする
	$temp	=	$in1[2];
#記号・英数字・カタカタをすべて半角文字に変換する
	$in1[2]	=	Unicode::Japanese->new($temp)->z2h->get;
#記号のみを半角文字に変換する
#	$in1[2]	=	Unicode::Japanese->new($temp)->z2hSym->get;
#数字のみを半角文字に変換する
#	$in1[2]	=	Unicode::Japanese->new($temp)->z2hNum->get;
#英字のみを半角文字に変換する
#	$in1[2]	=	Unicode::Japanese->new($temp)->z2hAlpha->get;
#カタカタのみを半角文字に変換する
#	$in1[2]	=	Unicode::Japanese->new($temp)->z2hKana->get;
#カタカタ(濁音つき、半濁音つきを除く)を半角文字に変換する
#	$in1[2]	=	Unicode::Japanese->new($temp)->z2hKanaK->get;
#カタカタ(濁音つき、半濁音つきのみ)を半角文字に変換する
#	$in1[2]	=	Unicode::Japanese->new($temp)->z2hKanaD->get;
	$out1	=	join("\t",@in1);
	print	OUT1	"$out1\n";
}

close(IN1);
close(OUT1);

