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

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

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

# 主処理
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;
		@save1	=	@in1;
}

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

# 入力キーがブレイク（変化）したときの処理
sub	s_break	{
	$out1	=	join(",",@save1);
	print	OUT1	"$out1\n";
}

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

