perl – CSV和带空格的字段

我使用 Text::CSV_XS来创建CSV文件.我看到如果一个字段有一个空格,那么它在双引号内输出,例如

john,smith,"Some address",bla

我想知道这个例子中的双引号是强制性的吗?或者它是一些配置选项?

解决方法

正如Subbeh已经建议的那样,你可以在调用new时将quote_char设置为undef,以按照 https://metacpan.org/pod/Text::CSV_XS#new来抑制它

不过,我会问你是否应该这样做.在CSV规范https://tools.ietf.org/html/rfc4180中,这些引号始终是允许的,有时是必要的(尽管严格地说,仅当字段包含分隔符或引号字符本身时).因为它们在那里完全有效,并且你将数据传递给以后的任何CSV解析工具都会应付……我倾向于让Text :: CSV做它的事情.

特别是,如果您按建议将quote_char设置为undef,则包含sep_char(通常为逗号)的字段将导致破坏.

编辑:您可以在调用new时将quote_space设置为false值,以防止此特定行为(引用带空格的字段),CSV规范既不强制也不禁止.

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...