perl - ファイル雛形(win)

#ファイルの文字コード
use utf8;

#コンソールの文字化け対応
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

#-------------------------------------------------------------------------------
# 文字コード
#-------------------------------------------------------------------------------
use utf8;
binmode STDIN, ":utf8";
binmode STDOUT, ":utf8";

#-------------------------------------------------------------------------------
# ファイル関数
#-------------------------------------------------------------------------------
sub read_file{
	my($file, $enc) = @_;
	
	if (!open(FH, "<:$enc", $file)){
		die("error :$!");
	}
	
	my @ret_list = ();
	
	while(<FH>){
		#print $_;
		my $line = $_;
		chomp($line);
		push(@ret_list, $line);
	}
	
	close(FH);

	return @ret_list;
}

sub write_file{
	
	my ($file, $list_ref, $enc) = @_;

	if (!open(WFH, ">:$enc", "$file")){
		die("error :$!");
	}

	foreach my $line (@{$list_ref}){
		print WFH "$line\n"
	}

	close(WFH);
}


#-------------------------------------------------------------------------------
# テストコード
#-------------------------------------------------------------------------------
my @lines = read_file("test.data", "utf8");

foreach my $line (@lines){
	print( $line."\n" );
	my @datas = split(/,/, $line);
	foreach my $data (@datas){
		print($data."\n");
	}
}

write_file("output.txt", \@lines, "utf8");