Когда я пишу в CSV-файл из Perl, используя SQL Insert, я получаю либо 0123
, либо """0123"""
, но мне нужно "0123"
. Кажется, ни конкатенация, ни регулярное выражение не решают проблему.
Вот мой код:
my $dbh = DBI->connect(qq{DBI:CSV:csv_eol=\n;csv_sep_char=\\,;});
$dbh->{'csv_tables'}->{'Table'} = {'file' => 'data.csv','col_names' =>
["num","id"]};
#Setup error variables
$dbh->{'RaiseError'} = 1;
$@ = '';
## Attempts to change $num
##$num = '"'.$num.'"';## this causes """0123"""
##$num = "\"$num\"";## this causes """0123""" even if I additionally do this:
## $num=~s/"""/"/g;
##$num = " ".$num;## causes " 0123" VERY CLOSE. Try next line:
##$num=~s/ //g;## This causes 0123
##$num = "".$num; ## causes 0123
##$num = "'".$num."'";## causes 123
my $value = "\'$num\',\'$id\'";
my $insert = "INSERT INTO Table VALUES ($value)";
my $sth = $dbh->prepare($insert);
$sth->execute();
$sth->finish();
$dbh->disconnect();
Я бы хотел, чтобы на выходе было $ num, чтобы в CSV получалось значение "0123", но вместо этого я получаю 0123 или "" "0123"" "или" 0123 "