# total2.pl
# 内容 :　同一キーの値を合計する（while型）
# 前提 :　合計値を出すキーごとに昇順に並べ替えておくこと 
# Copyright (c) 2002-2011 Mitsuo Minagawa, All rights reserved.
# (minagawa@fb3.so-net.ne.jp)
# 使用方法 : c:\>perl total2.pl
#   

# ファイルのオープン
open(IN1,"input.txt");
open(OUT1,">output.txt");

# 初期値設定
$in1_key	=	undef;		#入力キー
@in1		=	undef;		#入力データの配列
$in1_ctr	=	0;			#入力件数
$sv_key		=	undef;		#保存した入力キー
$total		=	0;			#合計値

# 主処理
while	($line1		=	<IN1>)	{

# 入力データの配列へのセット・キー項目のセット等の初期設定
		$in1_ctr++;							#入力件数加算
		chomp($line1);
		@in1		=	split(",",$line1,-1);
		$in1_key	=	$in1[0];

# キーブレイク時の処理
		if		(($in1_ctr	!=	1)
			&&	($sv_key	ne	$in1_key))		{
				s_break();
		}
		$sv_key		=	$in1_key;
		$total		+=	$in1[1];
}

# 最終データの処理（入力データがある場合）
if		($in1_ctr	!=	0)		{
		s_break();
}


# 入力キーがブレイク（変化）したときの処理
sub	s_break	{
		$out1	=	join(",",$sv_key,$total);
		print	OUT1	"$out1\n";
# $totalをゼロにしなければ、合計値ではなく、累計値になる。
		$total	=	0;
}

# ファイルのクローズ
close(IN1);
close(OUT1);
