Perl-在适当位置编辑文件并输出到其他目录

时间:2019-04-01 19:55:44

标签: strawberry-perl

经过Perl的速成课程(ty SO等)之后,我有了有效的代码来从批处理文件中提取输入和输出.SVG目录。该代码循环遍历文件输入目录并输出更正的图形。太好了...

问题是用户是否为输入和输出输入了相同的路径-表示他们希望就地更正图形。然后发生的是将长度为0的文件写入输入目录-覆盖当前文件。是否有使用下面的代码作为基础的“全面”方法?

opendir IN, $dirname;
my @in = grep { /^[^.]/ } readdir IN;
closedir IN;

for my $in (@in) {
  open IN, '<', "$dirname/$in" || next;
  open OUT, '>', "$outdirname/$in" || die "can't open file output/$in";
  foreach(<IN>) { #read file line by line

    # Strings to correct Note: Escaped ( with \
    s/rotate\(-180/rotate\(-0/g;
    for my $key (keys %stroke_width_hash) {
        s/$key/$stroke_width_hash{$key}/g;
    }
    # Print out line to OUT file
    print OUT $_;
  }
  close OUT;
  close IN;
}

我还有一个基本的Perl脚本,可以成功就地编辑文件。但是,如果可能的话,要求将它们组合成一个脚本。

我现在在看过Tie :: File,File :: Slurp等选项时陷入了困境,而我对于使用哪种最佳选项感到困惑...

任何帮助将不胜感激

0 个答案:

没有答案