如何强制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),但没有运气。

以上是如何强制Text::CSV将数字存储为文本?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>