簡體   English   中英

Perl Text :: CSV_XS從字符串讀取

[英]Perl Text::CSV_XS read from string

如何使用Text :: CSV_XS模塊從CSV字符串讀取其輸入。 然后,只有我能找到記錄的信息才從文件中讀取。

最快的方法是使用perl split函數分割CSV字符串並從那里讀取每一行,還是用Text :: CSV_XS內置一些方法直接從CSV字符串讀取?

謝謝

Text::CSV_XSgetline方法將從文件句柄讀取,因此您可以將標量字符串作為流打開並傳遞該文件句柄。

該程序演示

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";
}

輸出

a-b-c-d
e-f-g-h
i-j-k-l
m-n-o-p

使用解析方法;

#!/usr/bin/env perl
#
use strict;
use warnings;
use Data::Dumper;

use Text::CSV_XS;

my $csv = Text::CSV_XS->new();
if ( $csv->parse('Column1,Column2,Column2') ) {
    my @columns = $csv->fields;
    print Dumper( \@columns );
}
else {
    # Failed to parse the CSV data
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM