修改常數項我有Perl腳本中使用以消除腹脹XML的PDF文件不必要的標籤,我創造了我的Perl可以不能取代
#!/usr/bin/perl
#use strict;
use DirHandle;
my $sourcefile = shift;
my $outputfile = "new" . $sourcefile;
open SOURCEFILE, "$sourcefile" or die;
open OUTPUTFILE, ">$outputfile" or die;
$flag = 0;
foreach $line (<SOURCEFILE>) {
if($line=~ /<\?templateDesigner StyleID aped2\?>\n/) {
if($flag == 1) {
line=~ s/[\t]*<\?templateDesigner StyleID aped2\?>\n//gi;
}
$flag=1;
}
elsif($line=~ /<\?templateDesigner StyleID aped3\?>\n/) {
if($flag == 1) {
$line=~ s/[\t]*<\?templateDesigner StyleID aped3\?>\n//gi;
}
$flag=1;
}
elsif($line=~ /<\?templateDesigner StyleID apcb1\?>\n/) {
if($flag == 1) {
$line=~ s/[\t]*<\?templateDesigner StyleID apcb1\?>\n//gi;
}
$flag=1;
}
else {
$flag=0;
}
print OUTPUTFILE $line;
}
close SOURCEFILE;
close OUTPUTFILE;
結果運行此腳本下面的錯誤。
不能在d修改常數項在替代(S ///):?\ TEMP \ PDFPatch2.pl線1 7,靠近「S/[\噸] * < \ templateDesigner StyleID aped2 \> \ n // GI;」 執行d:\ Temp \ PDFPatch2.pl由於編譯錯誤而中止。
對不起,不太瞭解perl。
不要關閉'strict'。打開'警告'。這可能會清楚地表明你在第17行上輸入了錯誤,並且在$ line前面省略了$ $。 – Sobrique 2014-11-03 11:26:08
關閉「嚴格」和「警告」就像是在沒有安全帶的情況下在黑暗中駕駛:它不會讓駕駛變得更安全,直到你崩潰纔會看到危險。 – TLP 2014-11-03 12:45:49
錯誤消息*不是問題*。 *這是問題的有價值的指標。把它們關掉然後尋求幫助有點瘋狂。 – Borodin 2014-11-03 13:37:30