null文字判定と置き換え
読み込んだCSVファイルから、nullをスペースに置き換えて出力したいです。
nullは,,のところです。
1レコード17項目です。
読み込みファイル
01,,01,4カナ-0001,5漢字-0001,6,7年月-0001,8日付-0001,9-0001,10ー0001,11ー0001,12ー0001,3,4,15ー0001,6,17000001
02,0002,,4カナ-0002,5漢字-0002,6,7年月-0002,8日付-0002,9-0002e,10ー0002,11ー0002,12ー0002,3,4,15ー0002,6,17000002
出力
*△は半角スペース
01,△△△△,01,4カナ-0001,5漢字-0001,6,7年月-0001,8日付-0001,9-0001,10ー0001,11ー0001,12ー0001,3,4,15ー0001,6,17000001
02,0002,△△,4カナ-0002,5漢字-0002,6,7年月-0002,8日付-0002,9内容-0002,10ー0002,11ー0002,12ー0002,3,4,15ー0002,6,17000002
open IN2, "<:encoding(utf8)", "$input_FILE" or die;
open OUT2, ">:encoding(utf8)", "$output_FILE" or die;
while ( my $line2 = <IN2>) {
# 改行を削除
chomp $line2;
# レコード前後の""を外す
$line2 =~ s/^"//;
$line2 =~ s/"$//;
# 1レコード項目ごとに分割
my @data2 = split(/,/, $line2);
# レコードにnullが含まれている?
if ( $line2 =~ undef ) {
$line2 =~ s/$line2/ /g;
print "nullがあったよ!\n";
} else {
print "nullないよ!\n";
}
print OUT2 join (",", @data2),"\n";
}
close IN2;
close OUT2;
undefのところを\0にしても反応がありませんでしたが、undefは反応し、ディスプレイに表示もされましたが、出力ファイルにスペースが出力されておらず、判定のみで置き換えができていませんでした。よろしくお願いします。