2011年2月22日火曜日

perlでCSVファイルの読み込み。2

------------------
■概要
------------------
前回のものをText::CSV_Xを用いて書き換える。

Text::CSV_Xを使用すると、「セルの中にコンマが含まれてる場合」や「引用符""で囲まれている場合」
などのめんどくさいケースを考慮する必要がなくなる。

らしい。
------------------
■コード(全部)
------------------
use strict;
use warnings;
use Text::CSV_XS;
#-------------------------

open(FH," < team.csv");
my @list = ;
close(FH);

my $csv = new Text::CSV_XS({binary => 1}); 
my %hash;
foreach my $line( @list )
{
 $csv->parse($line) || die "parse失敗: " . $csv->error_input() . "\n";
 my ( $key, @items ) = $csv->fields();
 $hash{$key} = [@items];
} 

printarrayhash( %hash );


#-------------------------
sub printarrayhash
{
 my %hash = @_;
 foreach my $key( keys( %hash ) ) 
 {
     print "キー値 : $key\n";
     my @val = @{$hash{$key}};
     
     my $length = @val;
     print "length =$length\n";
     print "val = @val\n";
  }
}
0 件のコメント:
コメントを投稿