-1

私はperlで助けが必要です、ハッシュの形で私のcsvファイルの出力を取得するためのコードを書く方法。 出力はハッシュのように見える必要があります。出力用のハッシュを作成する必要はありません。配列を使用して出力をフォーマットできるようにすることができます。

4

1 に答える 1

3

メソッドgetline_hrを提供するText::CSVを使用します。このメソッドはCSV ファイル全体を返すのではなく、行のハッシュのみを返します。csv全体で1つのハッシュが必要な場合は、インデックスを作成する方法はあなた次第です.

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 に答える