我需要 perl 的帮助,如何编写代码以哈希的形式获取我的csv文件的输出。 输出应该看起来像一个哈希,不需要为输出创建一个哈希,它可以使用数组完成,这样我就可以格式化我的输出。
答案 0 :(得分:3)
使用提供方法Text::CSV的getline_hr。此方法不返回整个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;
...