# change_all.pl
# 内容 :　フォルダ内のファイルについてすべて同一の変更を行う
# Copyright (c) 2012 Mitsuo Minagawa, All rights reserved.
# (minagawa@fb3.so-net.ne.jp)
# 使用方法 : c:\>perl change_all.pl
#
use open ":encoding(cp932)";
use utf8;

# 正規表現パターンにマッチするデータが存在するかどうかをチェックするフラグ
$w_change	=	undef;

open(IN1,"filename.txt");	
while	($filename	=	<IN1>)	{	
	chomp($filename);	
	open(IN2,"$filename");	
# ファイル名をもとに全データを読み込む
	@data	=	<IN2>;	

	foreach	$line	(@data)	{
# 正規表現パターンにマッチするデータが存在するかどうかをチェックする
#		if		(($line		=~	/HTML 4.0 Transitional/)
#			or	($line		=~	/<html>/))					{
		if		($line		=~	/3-7.多次元データの処理/)		{
				$w_change	=	"xxx";
		}
	}	

# 正規表現パターンにマッチするデータが存在したら、置き換える
#	foreach	$line	(0..$#data)	{
	foreach	$line	(@data)	{
#		$line	=~	s*HTML 4.0 Transitional*HTML 4.01 Transitional*g;
#		$line	=~	s*<html>*<html lang="ja">*g;
#		$line	=~	s*<p><li>*<li><p>*g;
#		$line	=~	s*</li></p>*</p></li>*g;
#		$line	=~	s/<\/li><\/p>/<\/p><\/li>/g;
#		$line	=~	s*<font class*<strong class*g;
#		$line	=~	s*</font>*</strong>*g;
		$line	=~	s/3-7.多次元データの処理/3-7.多次元配列の処理/g;
		$line	=~	s/3-7-1.多次元データの処理/3-7-1.多次元配列の処理/g;
	}	

# マッチした場合のみ出力する
	if		($w_change	eq	"xxx")			{
			$output	=	$filename;
# 読み込んだファイルを出力ファイルとして、openし直す
			open(OUT1,">$output");	
# 変更した内容を出力する
			foreach	$line	(@data)		{
				print	OUT1	$line;
			}
	}
# 正規表現パターンにマッチするかどうかをチェックするフラグを初期化する
	$w_change	=	undef;
}	
close(IN1);	
close(IN2);	
