Perl Text::CSV_XS 从字符串中读取

Ada*_*dam 2 csv string perl text file

如何使用 Text::CSV_XS 模块从 CSV 字符串读取其输入。那么我只能找到记录的信息是从文件中读取。

最快的方法是使用 perl split 函数分割 CSV 字符串并从那里读取每一行,还是有一些内置方法使用 Text::CSV_XS 直接从 CSV 字符串读取?

谢谢

Bor*_*din 5

方法getlineText::CSV_XS将从文件句柄中读取,因此您可以将标量字符串作为流打开并传递该文件句柄。

该程序演示了

use strict;
use warnings;

use Text::CSV_XS;

my $string = <<'END';
a,b,c,d
e,f,g,h
i,j,k,l
m,n,o,p
END


my $csv = Text::CSV_XS->new;
open my $fh, '<', \$string;

while (my $row = $csv->getline($fh)) {
  print join('-', @$row), "\n";
}
Run Code Online (Sandbox Code Playgroud)

输出

a-b-c-d
e-f-g-h
i-j-k-l
m-n-o-p
Run Code Online (Sandbox Code Playgroud)