Loading [MathJax]/extensions/tex2jax.js

2011年2月22日火曜日

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

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

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

らしい。
------------------
■コード(全部)
------------------
  1. use strict;  
  2. use warnings;  
  3. use Text::CSV_XS;  
  4. #-------------------------  
  5.   
  6. open(FH," < team.csv");  
  7. my @list = <fh>;  
  8. close(FH);  
  9.   
  10. my $csv = new Text::CSV_XS({binary => 1});   
  11. my %hash;  
  12. foreach my $line( @list )  
  13. {  
  14.  $csv->parse($line) || die "parse失敗: " . $csv->error_input() . "\n";  
  15.  my ( $key, @items ) = $csv->fields();  
  16.  $hash{$key} = [@items];  
  17. }   
  18.   
  19. printarrayhash( %hash );  
  20.   
  21.   
  22. #-------------------------  
  23. sub printarrayhash  
  24. {  
  25.  my %hash = @_;  
  26.  foreach my $key( keys( %hash ) )   
  27.  {  
  28.      print "キー値 : $key\n";  
  29.      my @val = @{$hash{$key}};  
  30.        
  31.      my $length = @val;  
  32.      print "length =$length\n";  
  33.      print "val = @val\n";  
  34.   }  
  35. }  
  36. </fh>  
0 件のコメント:
コメントを投稿