我需要perl方面的帮助,如何编写代码以散列形式获取 csv 文件的输出。 输出应该看起来像一个哈希,不需要为输出创建一个哈希,它可以使用数组来完成,这样我就可以格式化我的输出。
问问题
90 次
1 回答
3
使用提供方法getline_hr的Text::CSV。此方法不返回整个 CSV 文件,它只返回行的哈希。如果您想要一个包含整个 csv 的哈希值,如何索引它取决于您。
use Text::CSV;
my $csv = Text::CSV->new;
$csv->column_names( qw/ id col1 col2 / );
while ( not $csv->eof ) {
my $row = $csv->getline_hr($fh);
if ( $csv->error_diag ) {
last if $csv->eof;
my ( $err, $text ) = $csv->error_diag;
die $err, $text;
$csv->SetDiag(0);
next;
}
use Data::Dumper;
print Dumper $row;
}
您必须将该行添加到哈希数据库中,
my %hashdb;
while ( not $csv->eof ) {
my $row = $csv->getline_hr($fh);
$hashdb{$row->{id}} = $row;
...
于 2013-02-17T05:41:54.817 回答