我对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的繁重日子中,我很有可能仍然处在众所周知的困境中,因此,如果这已经有十年历史了,请原谅我的无知。
IN
指的是*IN
指IN
当前包中的符号。它是全球性的。
my
创建在词法范围内的变量。
将变量的范围限制在需要的地方是CS的基本方面。
它还允许use strict;
查找错别字。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句