Text::CSV::Simpleをレンタルサーバーで使う
CSVを読み取って、それを整形して出力。
なんて事、よくあります。どっかにモジュール転がってないかなーとググったところ、
101号室: [perl] Text::CSV::Simple
Text::CSV::Simpleが便利すぎる。
このモジュールはCSVを読み込むときに、各行をリストではなくハッシュにすることができる。
おお、まさにこういう事がしたかった。
読み込む際に各種データフィールド名を指定しておけば勝手にハッシュにしてくれるスグレもの。
ここまでモジュールがやってくれれば、後はTTに丸投げ出来るすばらしいモジュールです。
ところが!!
このText::CSV::Simpleというモジュールの中身をのぞいてみると、どうやら、
Text::CSV_XS
てなXSなモジュールをuseしているようなので、そのまんまではレン鯖などで使うには問題アリ。
そこで、Text::CSV_XSをそっくりそのまま、
Text::CSV_PP
に置き換えちゃいました。
これでレン鯖対策完了です。
ひとまずモジュールは、Text::CSV::Simple_PP として、使う事にしました。
Text::CSV::SimpleからText::CSV::Simple_PPにコピペ後、あらゆるText::CSV_XSやText::CSV::SimpleをText::CSV_PPやText::CSV::Simple_PPに変えるだけです。
$ diff Simple.pm Simple_PP.pm
1c1
< package Text::CSV::Simple::__::Base;
---
> package Text::CSV::Simple_PP::__::Base;
10c10
< package Text::CSV::Simple;
---
> package Text::CSV::Simple_PP;
12c12
< use base 'Text::CSV::Simple::__::Base';
---
> use base 'Text::CSV::Simple_PP::__::Base';
18c18
< use Text::CSV_XS;
---
> use Text::CSV_PP;
140c140
< return bless { _parser => Text::CSV_XS->new(@_), } => $class;
---
> return bless { _parser => Text::CSV_PP->new(@_), } => $class;
CPAN様々を痛感します。
久しぶりにPerl書いてるけど、やっぱり楽しい!



