【发布时间】:2015-12-02 11:30:16
【问题描述】:
我对 Perl 并不陌生,但实际上我已经离开好几年了。
在我“回来”后,潜伏在这个网站和其他网站上,我不禁注意到我曾经在哪里这样做:
open IN, 'filename.txt' or die;
open OUT, '>filename.new' or die;
while (<IN>) {
print OUT
}
close OUT;
close IN;
我现在看到标准方法是现在这样做:
open my $IN, '<', 'filename.txt' or die;
open my $OUT, '>', 'filename.new' or die;
我是“在罗马时”的忠实粉丝,我努力以正确的方式做事。在那张纸条上,我的第一种方法是错误的吗?它是否有我不知道的影响或风险?
方法 #1 的一个缺点是它会在 Perl 中编译(并且可能运行),即使打开了限制:
open IN, 'filename.txt' or die;
open OUT, '>filename.new' or die;
while (<NOT_EVEN_CLOSE>) {
print OUT
}
close OUT;
close IN;
另一个可能的(?)原因是您可以将$IN 作为参数传递?有点像静态类和单例之间的区别?我正在为那个吸管。
最后,假设方法 2 更正确或更好,我是否应该返回并修改旧代码以应用此方法更改?
另外,在我从事 Perl 的繁重日子里,我很可能仍然处于众所周知的困境中,所以如果这是十年前的惯例,请原谅我的无知。
【问题讨论】:
标签: perl