Perl不能修改替换中的常量项

时间:2014-11-03 11:21:27

标签: perl pdf

我使用Perl脚本删除不需要的标签,这些标签是我正在创建的xml pdf文件

#!/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:\ Temp \ PDFPatch2.pl第1行修改替换中的常量项(s ///) 7,靠近&#34; s / [\ t] *&lt; \?templateDesigner StyleID aped2 \?&gt; \ n // gi;&#34; 由于编译错误,d:\ Temp \ PDFPatch2.pl的执行中止。

抱歉,对perl不太了解。

1 个答案:

答案 0 :(得分:13)

请勿关闭strict。 开启warnings

这或许可以清楚地表明您已在第17行打了错误,并在$前面省略了$line