perlでcsv
http://blog.livedoor.jp/dankogai/archives/50765677.html
CSVからデータを取り込むときText::CSVが便利だよという話。Perlメモでも","や\sの扱いの対処法が出ていた。業務用のCSVでは重要な問題らしい。
数値のみのCSVではsplitから@dataに取り込むところが遅くなりがちで100万行くらいになると問題になる。split関数がすべての列データをメモリに出力する事と配列データを作る事が処理量を増やしているようだ。たいてい1カラム取り出せばすむので
my $colum_match = "^>"; for (my $n = 0; $n < ***; $+n++){ $colum_match .= "\d*?\t"; } $colum_match .="(\d*)"; while ($line =~ m/$colum_match/){ $1 }
みたいにして参照したほうが早い。