尖括号(<>)的神奇特点:如果没有指定文件名,则其从标准输入流中自动打开和关闭一系列文件进行读入。但如果 $^I
中有字符串,这个字符串则会成为备份文件的扩展名。
(下面的代码通过给 @ARGV 赋值,模拟标准输入得到的文件名)
$^I = '.bak';# 备份文件后缀名
@ARGV = glob('*.txt');# 模拟命令行参数获得的文件名 :)
# 逐个打开从命令行获得的文件,更新内容
# 源文件以 $^I 定义的后缀名备份
while (<>) {
s/author/author: redspider/g;
print;# 默认输出自动被重定向至文件
}
# 删除备份文件
my @bakfiles = glob('*.bak');
for (@bakfiles) { unlink($_) }
没有评论:
发表评论