如何强制Text::CSV将数字存储为文本?
我正在编写一些 perl 代码,使用 Text::CSV 模块从数据库中的记录创建一个 .csv 文件。有时,我的表中的一个或多个字段将包含多个重复的 0,这些 0 将作为单个 0 写入 CSV。我试图找出如何将数字强制为文本格式,以便所有 0从这些领域将保持原样。
use Text::CSV_XS;
sub write_file {
my ($self, %params) = @_;
my $fh = $params{fh};
.. do stuff
.. get database rows
my $csv = Text::CSV_XS->new({ sep_char => ',' });
for my $row (@$rows) {
my @fields = (
$row->{name},
$row->{address},
$row->{code}
);
$csv->combine(@fields);
print $fh $csv->string . "rn"
or die 'Write error.';
}
使用这种方法,大多数时候一切都看起来不错。但是,当代码显示为“00000”时,它会被截断并在我的 CSV 中写为“0”。
我已经调查过$csv->types,但这仅允许在解析过程中解码时定义类型。
我还尝试使用 将字段括在引号中$csv->quote(@fields),但没有运气。