经过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等选项时陷入了困境,而我对于使用哪种最佳选项感到困惑...
任何帮助将不胜感激