Perl 如果$^I=";则如何取消输出;。“bak”;已经存在?

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]

在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;

但是,如果要处理多个文件,则应该有一个continue块,用于对eof上的下一个文件进行相同的检查。而且跟踪“下一个文件”并不是100%的琐事:)
继续{die”备份文件已经存在。\n“如果eof&&&@ARGV&&-e$ARGV[0]。$^I}
似乎没有那么难。。。
die "Backup file already exists.\n" if -e $ARGV[0] . $^I;