我在這個程序中有一系列單行程序。他們將單獨在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