PerlでCSVを扱うためのモジュール探し
open IN, "<", $filename; while(<IN>){ my @col = split(/,/, $_); ... }
をするのが面倒なのでcpanを漁ってみる。
いつもお世話になっているGoogle先生,および最速インターフェース研究会様でモジュール検索。
調べた結果,Text::CSV_XSを使うみたい。
とりあえずインストールしてみる。
cpanシェルを起動し,以下のコマンドを実行。
install Text::CSV_XS
問題なくインストール完了。はてしなく便利>cpan。
で,使い方を読んでると・・・あれ?なんか違くね?
どうやらText::CSV_XSは上記CSV処理コードのsplitを担当するものらしい。
splitでは二重引用符とかの処理がうまくできないからText::CSV_XSを使うみたい。
splitで問題ないCSVファイルを使っている私には必要ないモジュールであることを認識。
私が欲しいのはCSVファイルを指定して全体をメモリ上に読み込んでくれるモジュールです。
てことで再検索。
すぐ近くにText::CSV::Simpleというモジュールを発見。
同様に
install Text::CSV install Text::CSV::Simple
インストール完了。やっぱり便利>cpan。
これは良さそう。
こいつの特徴は
- ファイル名を指定すれば,ファイルを読み込み解析する
- 解析したデータをリストへ出力する
- 出力されたリストは2次元配列のように扱うことができる
- 各列にフィールド名をつけることもでき,そのフィールド名でアクセスすることができる
- 必要なデータ列のみを抜きだすことができる
ようだ。
これの使い方はText::CSV::Simpleの使い方。にまとめる。