我想加载一个CSV文件,转置它,并写一个新的。除了编写一个新文件之外,我的一切都正常工作。我在网上浏览过没有成功。从2d阵列创建CSV文件perl
use strict;
use warnings;
use Text::CSV;
use Data::Dump qw(dump);
use Array::Transpose;
my @data; # 2D array for CSV data
my $file = 'sample_array.csv';
my $csv = Text::CSV->new;
open my $fh, '<', $file or die "Could not open $file: $!";
while(my $row = $csv->getline($fh)) {
shift @$row; # throw away first value
push @data, $row;
}
@data=transpose(\@data);
dump(@data);
这里的输出是转置数组@data (["blah", 23, 22, 43], ["tk1", 1, 11, 15],["huh", 5, 55, 55])
。我需要将输出写入新的CSV文件。
CSV文件:
text,blah,tkl,huh
14,23,1,5
12,22,11,55
23,42,15,55
您不需要同时使用'Text :: CSV'和'Text :: CSV_XS'。如果你安装了'Text :: CSV_XS','使用Text :: CSV;'实际上会自动使用'Text :: CSV_XS'。 – ThisSuitIsBlackNot
的确,我应该删除它从之前的尝试中复制过来的。 – snoop