-1

有哪些好的 Perl 模块可以根据配置处理文件?

基本上,我正在处理数据文件,将它们拆分为列,根据某些列删除一些行,删除不必要的列,将它们与基线进行比较(写入发生更改的位置)并将数据和注释的 csv 保存为元数据。

示例文件是:

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

它将逐行与另一个文件(基线)进行比较,并且将突出显示一些不同的行(我正在使用Tk::DiffText)。

这是管道[is a pipe]

file -> [split] -> [remove production] -> [sort] -> [compare] -> {用户进入并写入评论,根据需要编辑文件} -> [save csv] -> [save comments]

真正的问题是什么 perl 模块有助于建模和制作这样的管道流?经过更多研究,我发现了这个http://en.wikipedia.org/wiki/Flow-based_programming

4

4 回答 4

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 保存为元数据。

类::CSVDBD::CSV

于 2009-07-31T15:44:23.267 回答
1

看看Sprog。它是一个用 Perl(使用 Gtk2)编写的可视化编程引擎。您可以通过拖放“齿轮”来创建 Perl 程序。您还可以添加自己的齿轮(当然是用 Perl 编写的)。

Sprog的屏幕截图

于 2009-08-01T01:46:31.340 回答
0

我不知道基于流编程的任何 Perl 实现,但我相信 Perl 5.8 已经为 Perl 编码人员提供了解释器线程(如果我错了,请纠正我!),所以构建 FBP 实现应该相对简单在 Perl 上。请参阅http://perldoc.perl.org/threads.html

于 2009-08-03T15:24:29.100 回答
0

这就是我一直在寻找的:

文本::管道

文本::管道::可堆叠

谢谢你帮我澄清我的想法!

于 2009-08-04T14:46:57.110 回答