我在这个程序中有一系列单行程序。他们将单独在cmd中工作,或者单独工作。但是,当他们在一起时,我相信这只是第一个可行的方案。考虑到我有大量的数据需要处理,而且更愿意在批处理中执行此操作以及其他操作,所以这非常麻烦。我对perl和计算机编程相当陌生,所以我为初学者的错误道歉。任何帮助都会很棒。代码只能在cmd中使用,而不能在程序中使用
谢谢, 乔希
use strict;
use warnings;
LINE: while (<>) {
s/POSF /\n/gi;
s/,|\*|\\|\^|\"|=|\?|\$//gi;
s/^/\|/gi;
s/(\|)(number: .*?$|From \d+\/\d+\/\d+ to \d+\/\d+\/\d+|^Units|^Current Face|^Price|^FX|As of \d+\/\d+\/\d+)/$2/gi;
s/\| +|\|\t+/\|/gi;
s/\n/\t/gi;
s/\|/\n/gi;
s/^/\|/gi;
s/(\|)(.*?number: .*?$)/$2/gi;
s/\n//gi;
s/\|/\n/gi;
print;
}
print "\n\ndone"
顺便说一下......这个编的实际单词不是标量变量.. – joshE
[perldoc perldebug](http://perldoc.perl.org/perldebug.html)。逐步循环,在更改前后检查'$ _'。另外,请考虑'tr/|/\ n /','tr/\ n // d'等,以及更改正则表达式分隔符而不是反斜杠('\')您的斜杠('/')。 –
正如你在文件中对换行符所做的那么多操作,你可能会有更好的运气在一行中读取整个文件。在'while'循环之前放置'$/= undef;'。还可以在你的第四个替代品上使用'/ m'修饰符(带有'...^Units |^Current Price ...'的那个')。 – mob