Perl 如果$^I=";则如何取消输出;。“bak”;已经存在?
在Perl中,我使用公共模式循环文件:Perl 如果$^I=";则如何取消输出;。“bak”;已经存在?,perl,Perl,在Perl中,我使用公共模式循环文件: $^I=".bak"; while(<>) { s/pattern/replacement/g; print; } 因为$ARGV在之前未设置,并且在while循环中$ARGV已被替换 那么,我是错过了什么,还是我必须用不同的方式来做 谢谢 在进入使用它的while循环之前,检查@ARGV(null从中读取文件名列表)。e、 g die "Backup file already exists.\n" if -e $ARGV[0]
$^I=".bak";
while(<>) {
s/pattern/replacement/g;
print;
}
因为$ARGV在之前未设置,并且在while循环中$ARGV已被替换
那么,我是错过了什么,还是我必须用不同的方式来做
谢谢 在进入使用它的while循环之前,检查@ARGV
(null
从中读取文件名列表)。e、 g
die "Backup file already exists.\n" if -e $ARGV[0] . $^I;
但是,如果要处理多个文件,则应该有一个continue块,用于对eof上的下一个文件进行相同的检查。而且跟踪“下一个文件”并不是100%的琐事:)
继续{die”备份文件已经存在。\n“如果eof&&&@ARGV&&-e$ARGV[0]。$^I}
似乎没有那么难。。。
die "Backup file already exists.\n" if -e $ARGV[0] . $^I;