-1

構成に基づいてファイルを処理するための優れた Perl モジュールは何ですか?

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

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

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

行ごとに別のファイル(ベースライン)と比較し、いくつかの異なる行が強調表示されます( I am use Tk::DiffText)。

これがパイプラインです[is a pipe]

ファイル -> [分割] -> [作成を削除] -> [並べ替え] -> [比較] -> {ユーザーがジャンプしてコメントを書き込み、必要に応じてファイルを編集} -> [csv を保存] -> [コメントを保存]

本当の問題は、このようなパイプライン フローをモデル化して作成するのにどの perl モジュールが役立つかということです。さらに調査した結果、 http://en.wikipedia.org/wiki/Flow-based_programmingを見つけました。

4

4 に答える 4

1

Sprogを見てください。Perl (Gtk2 を使用) で書かれたビジュアル プログラミング エンジンです。「歯車」をドラッグ&ドロップすることで、Perl プログラムを作成できます。独自のギアを追加することもできます (もちろん、Perl で記述されています)。

Sprogのスクリーンショット

于 2009-08-01T01:46:31.340 に答える
1

うーん、Perl だけではほとんど処理できないようです:

データファイルの取得

while (<>) 

それらを列に分割し、

my @row = split(/,/);

いくつかの列に基づいていくつかの行を削除し、

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

不要な列を削除する

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

不要な列を削除する

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

それらをベースラインと比較します(変更が発生した場所に書き込みます)

わかりました、ここでAlgorithm::Diffを使用できます

データとコメントの csv をメタデータとして保存します。

Class::CSVまたはDBD::CSV ?

于 2009-07-31T15:44:23.267 に答える
0

フローベース プログラミングの Perl 実装については知りませんが、Perl 5.8 では Perl コーダーがインタプリタ スレッドを利用できるようになったと思います (間違っていたら誰か訂正してください!)。パールで。http://perldoc.perl.org/threads.htmlを参照してください。

于 2009-08-03T15:24:29.100 に答える