foreachの入れ子について。
あるディレクトリ内の全てのファイル名を取得し、
全てのファイルを開いてカンマ、ダブルクォーテーション付加の処理をし、
別ファイルへと出力する。と言ったものを以下のように作ったのですが、
入れ子のforeach{}内へ入って行きません、
foreachの入れ子は出来ないのでしょうか?
それともプログラムが間違っているのでしょうか?
どなたかご教授お願いいたします。
require "./jcode.pl"; # jcode.plの呼び出し
#ディレクトリ表示
opendir(DIR01,"./TestData") || die "can not open dir";
@FileName = readdir(DIR01);
closedir(DIR01) || die "can not close dir";
foreach $file (@FileName) {
if ($file eq '.') {next;} # '.'の時ループを抜ける
if ($file eq '..') {next;} # '..'の時ループを抜ける
$FName = "./TestData/$file";
# ファイルのオープン
open ( FILEHANDLE , "$FName") || die "ファイルを開けません :$!\n";
@line = <FILEIN>;
close (FILEIN);
foreach $line (@line){
#########################
print "TEST-->$line\n";
#########################
$line =~ s/ⅰ|ⅱ|ⅲ|ⅳ|ⅴ|ⅵ|ⅶ|ⅷ|ⅸ|ⅹ//g;
$line =~ s/\"/\"\"/g;
$line =~ s/\,\"\?/\"\,\"/g;
$line =~ s/\"\,\?/\"\,\"/g;
$line =~ s/\ |\ /\"\,\"/g;
&jcode::sjis2euc(\$line,"z"); # sjis --> euc コードへ変換
if (length $line != 1){
chop($line);
$cd_22 = chr(0x0022);
$line = "$cd_22$line$cd_22";
$line =~ s/([^\LF])$/$1\n/;
}
}
open (FILEOUT, ">./log/TEST.txt") or die; #上書き時
print FILEOUT @line;
close (FILEOUT);
}
}
exit;
お礼
解決しました! 迅速な対応ありがとうございます