2011-08-11 9 views
2

私はCSVファイルから情報を抽出するためのいくつかのperlコードを書こうとしています。最初からコードを書く前に、私はグーグルでCPANをチェックして、パッケージTie::CSV_Fileを助けたり来たりする可能性のあるどのようなperlモジュールがあるか調べました。PerlパッケージTie :: CSV_File

私の質問/問題はこれです:そのモジュールのテストには多大な誤差があるため、CPANからインストールできないようです。私はこのモジュールのためにこれを回避する方法を説明するものは何も見つかりません。私はモジュールを直接ダウンロードしてビルドしようとしましたが、それらのエラーはまだあります。私はperl 5.10、5.12、5.14を使用しましたが、エラーはまだあり、明らかに同じです。

誰が何が起こっているか考えている人はいますか?

誰もがTie::CSV_Fileの良い代替品を持っていますか?なぜなら、CSVファイルを開き、配列のように扱うことができるからです。なぜなら、2次元配列構文でアドレス指定することで、各セルに直接アクセスするからです。

ありがとうございました。

編集#1 私はネクタイをインストールしよう:: CSV_File私は、次のエラーメッセージを取得しています:

Files=12, Tests=10, 1 wallclock secs (0.05 usr 0.02 sys + 0.79 cusr 0.12 csys = 0.98 CPU) 
Result: FAIL 
Failed 10/12 test programs. 4/10 subtests failed. 
make: *** [test_dynamic] Error 255 
    BIGJ/Tie-CSV_File-0.21.tar.gz 
    /usr/bin/make test -- NOT OK 
//hint// to see the cpan-testers results for installing this module, try: 
    reports BIGJ/Tie-CSV_File-0.21.tar.gz 
Running make install 
    make test had returned bad status, won't install without force 
Failed during this command: 
BIGJ/Tie-CSV_File-0.21.tar.gz    : make_test NO 
+0

ここにはさらに詳しい情報が必要です。どのようなエラーが表示されますか?あなたはどんなプラットフォームですか?使用できるいくつかの選択肢は、Tie :: Handle :: CSVまたはText :: CSV_XSです。 – frezik

+0

perlがインストールされていて、cpanがインストールされている場合は、 'cpan install Tie :: CSV_File'というエラーが表示されます。 –

+0

@ Zeke Hansell、 'Tie :: CSV_File'にパッチを当ててみた後、私は自分自身をモックアップすることにしました。 –

答えて

2

は、そのいずれかの慰めTie::CSV_Filefailing for everyoneであると思われる場合!私は周りを見ていくつかの選択肢を提供しようとします。 今のところ、より良く動作するように見える以前のバージョンをインストールしようとするかもしれません。心配しない限り、Perlバージョン5.8以上ではすべてのテストが失敗するようです。

更新:Tie::CSV_Fileにその欠陥を修正しようとしました。私はいくつかの問題をノックしましたが、私の満足にそれを修正することができませんでした。最も近い他のCPANモジュールはTie::Array::DBDですが、CSVのパフォーマンスが非常に遅いと主張しています。

tie対応CSVアレイを作成しようと自分自身で試したところ、Tie::Array::CSVというタイトルのCPANにリリースしました。githubで利用できます。

+0

ありがとう!私は何か不足しているとか狂っていると思っていました。私にとってだけでなく、他の人にとっては失敗することを知っておくと良いでしょう。 –

+0

新しいモジュールを見ていきます。しかし今日は金曜日ですが、私が戻ってくるまで数日かかるかもしれません。 –

+0

あなたがそこに着くと、あなたのためにそこにあります。うまくいけば助かります。コメントがあれば教えてください –

0

私は情報を抽出し、CSVファイルの多くで動作します。タイ:: CSV_FILEを使用する代わりに、ちょうどある:

open my $file, '<', "filename.csv"; 

while(defined (my $line = <$file>)){ 
    my @lineArray = split ',', $line; 
    my $firstValue = $lineArray[0]; 
    my $secondValue = $lineArray[1]; 
} 
+0

ありがとうございます、これは代替ですが、私が探しているものではありません。まず、CSVファイルに文字列を引用符で囲んだ場合、コンマが埋め込まれていると、実際には分割が正しく分割されません。 2番目に、Tie :: CSV_Fileモジュールは、2次元配列のようにENTIRE CSVファイルにアクセスできるようになっています。 –

関連する問題