我正在学习 Perl 并编写了一个小脚本来打开 perl 文件并删除注释
# Will remove this comment
my $name = ""; # Will not remove this comment
#!/usr/bin/perl -w
<- 不会删除此特殊评论
要编辑的文件的名称通过终端作为参数传递
die "You need to a give atleast one file-name as an arguement\n" unless (@ARGV);
foreach (@ARGV) {
$^I = "";
(-w && open FILE, $_) || die "Oops: $!";
/^\s*#[^!]/ || print while(<>);
close FILE;
print "Done! Please see file: $_\n";
}
现在当我通过终端运行它时:
perl removeComments file1.pl file2.pl file3.pl
我得到了输出:
Done! Please see file:
这个脚本完全按照我的预期工作,但是
问题1:为什么$_
不打印文件名?
问题 2:既然循环运行了 3 次,为什么Done! Please see file:
只打印了一次?
您将如何用尽可能少的行编写此脚本?
如果您有时间,也请评论我的代码。
谢谢你。