CSV形式では、データ中の「”」(ダブルクォーテーション)が、「””」に置き換わって表記・保存されます。
これは、CSV形式では各データ(Excelのセル1個ぶんの情報)が「”」で囲まれる※ため、「”」がエスケープ文字になるからです。
※つまり、CSV形式では 1行分のデータの集合が、「”abc”,”def”,”ghi”」になっている。
CSV形式のデータを Perlで扱う際に、データ区切りを「”」と「”,”」を目印に実施している(つまり、「“abc“,”def“,”ghi“」のアンダーライン部分に着目する)と、データ中の「””」で処理がエラーになったり、間違ったデータ区切りになってしまいます。
CSV形式のデータを元にHTMLなどの生成する場合には、次のような前処理が必要です。ここで、注意すべきは、赤太字部を忘れないことです。
foreach $ele ( @a ) {
$ele =~ s|\r?\n||g; # 改行を除く
$ele =~ s|”””,|"”,|g;
$ele =~ s|,”””|,”"|g;
$ele =~ s|””|"|g;
}