2009-07-31 10 views
-1

コンフィギュレーションに基づいてファイルを処理するための良いPerlモジュールは何ですか?ファイルのフローベースのプログラミングのための良いPerlモジュールには何がありますか?

基本的に私は、データファイルを取り込み、列に分割し、列に基づいていくつかの行を削除し、不要な列を削除し、ベースラインと比較して(変更が発生した場所に書き込む)、データのcsvを保存します。メタデータとしてのコメント。

サンプルファイルは次のとおりです。

001SMSL24936 
002XXXXX20090320102436    010000337 00051  
002XXXXX20090320103525    010000333 00090  
002XXXXX20090320103525    010000333 00090  
002XXXXX20090320103525    010000333 00090  
002XXXXX20090320103525    010000333 00090  
002XXXXX20090320103525    020000333 00090  
009000000009000000000271422122 

それは別のファイル(ベースライン) と(私はTk::DiffTextを使用)強調表示されますいくつかの異なる行と行ごとに比較します。 > [分割] - - > [生産を削除] - > [ソート] - > [比較] - > {ユーザーがジャンプやコメントを書き込み、必要に応じてファイルを編集ここ

[is a pipe]

ファイルのパイプラインであります} - > [save csv] - > [コメントを保存]

実際の質問は、perlモジュールがこのようなパイプラインをモデル化して作成するのに役立つのですか? さらに調査したところ、私はこれを見つけましたhttp://en.wikipedia.org/wiki/Flow-based_programming

+0

どのような種類のデータファイルですか? –

+1

質問を調整して、データファイルの完全な例、期待する入力、および希望の出力を表示する必要があります。コメントを通して質問に追加しないでください:質問をより良くする:) –

+0

おっと、私はこのより良い脳の恐怖を意味しています。 – kthakore

答えて

1

うーん、それはPerlはそれ自体ではほとんど扱うことができない何もないようです:データファイルに

while (<>) 

を取っ

列にそれらを分割し、

my @row = split(/,/); 

は、一部の列に基づいていくつかの行を削除します、

next if @row[5] =~ m/black_list_data/; 

OK(変更が発生している場所に書き込む)

@row = ($row[1], $row[4]); 

がベースラインにそれらを比較、不要な列を削除し、不要な列に

@row = ($row[1], $row[4]); 

を削除し、ここにあなたがAlgorithm::Diff

を使用し、保存するかもしれませんデータのcsvおよびメタデータとしてのコメントを含む。

Class::CSVまたはDBD::CSV

+0

Hmm ..引用CSSスタイルは、コードスタイルにかなり似ています.-( –

+0

私は通常、通常のテキストとして引用符を残すか、コードにコメントを付けます。 –

0

Iは、フローベースのプログラミングの任意のPerlの実装を認識していないが、私は、Perl 5.8は、Perlのプログラマーが利用できるインタプリタスレッドを(私が間違っている場合、誰かが私を修正!)作ったと信じて、それは、 Perl上でFBP実装を構築するのは比較的簡単です。これは私が探していたものであるhttp://perldoc.perl.org/threads.html

関連する問題