0
爲什麼當我將編碼格式添加到打開模式時,空字段不會導致未定義的值?Text :: CSV - 用編碼打開 - blank_is_undef
#!/usr/bin/env perl
use strict;
use warnings;
use Text::CSV;
use Data::Dumper;
my $file = 'TEST.csv';
open my $fh, '>', $file or die $!;
print $fh 'hello,,world';
close $fh;
my $csv = Text::CSV->new({
sep_char => ',',
auto_diag => 1,
blank_is_undef => 1,
binary => 1,
});
open $fh, '<', $file or die $!;
my $tmp;
while (my $row = $csv->getline($fh)) {
push @$tmp, $row;
}
close $fh;
print Dumper $tmp;
#$VAR1 = [
# [
# 'hello',
# undef,
# 'world'
# ]
# ];
open $fh, '<:encoding(UTF-8)', $file or die $!;
$tmp = [];
while (my $row = $csv->getline($fh)) {
push @$tmp, $row;
}
close $fh;
print Dumper $tmp;
#$VAR1 = [
# [
# 'hello',
# '',
# 'world'
# ]
# ];
我認爲'文本:: CSV_XS'已安裝,但它不是。現在使用'Text :: CSV_XS'安裝它可以正常工作。 –