Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 如果某些字段包含其他逗号,如何使用join函数创建csv文件_Perl_Perl Module - Fatal编程技术网

Perl 如果某些字段包含其他逗号,如何使用join函数创建csv文件

Perl 如果某些字段包含其他逗号,如何使用join函数创建csv文件,perl,perl-module,Perl,Perl Module,我需要编写一个CSV文件,其中一些字段包含额外的逗号 所以我使用了'my@fields=Text::ParseWords::parse_line(',',0,$line); 以便进行处理 但是如何在最后使用join函数在perl中写入文件呢 理想情况下,您应该使用CSV库,例如 如果唯一的问题是字段中有多余的逗号,而不是多余的引号,我将分享一个技巧 $line_out='”。连接(“,”,@fields)。“” RFC4180表示引用字段,即“field1”、“field2”、“componen

我需要编写一个CSV文件,其中一些字段包含额外的逗号

所以我使用了'my@fields=Text::ParseWords::parse_line(',',0,$line); 以便进行处理


但是如何在最后使用join函数在perl中写入文件呢

理想情况下,您应该使用CSV库,例如

如果唯一的问题是字段中有多余的逗号,而不是多余的引号,我将分享一个技巧

$line_out='”。连接(“,”,@fields)。“”


RFC4180表示引用字段,即
“field1”、“field2”、“component、field”
,此时字段可能包含逗号、换行符等。

CSV文件有一个松散的标准。它包括这类案例,并且可读性相当强。它不会为您编写perl程序。在google或cpan搜索中包含RFC 4180可能会有所帮助,以帮助您搜索符合标准的perl模块。请您推荐可以在perl中用于这些类型的库模块好吗?据我所知,RFC4180(感谢该链接)建议对带逗号的字段值使用双引号(
“value,of,a,single,field”
)。您应该将其应用于输出CSV。但是,如果输入CSV的字段值带有逗号,您可能可以通过比较字段长度和数据类型猜测正确的列结尾。另一种方法是使用另一个字符(例如分号)分隔值。但这不是一个解决方案,因为值仍然可以包含分号。如果在开头和结尾添加额外的
”,则使用“连接是一个有用的技巧。感谢您的回复。我使用了Text::CSV_XS->Combine函数。