我在perl中需要帮助,如何编写代码以哈希的形式获取我的csv文件的输出

时间:2013-02-17 05:22:33

标签: perl

我需要 perl 的帮助,如何编写代码以哈希的形式获取我的csv文件的输出。 输出应该看起来像一个哈希,不需要为输出创建一个哈希,它可以使用数组完成,这样我就可以格式化我的输出。

1 个答案:

答案 0 :(得分:3)

使用提供方法Text::CSVgetline_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;

   ...