<FH>和<$ FH>之间的Perl差异

火腿骨

我对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指的是*ININ当前包中的符号它是全球性的。

my 创建在词法范围内的变量。

将变量的范围限制在需要的地方是CS的基本方面。

它还允许use strict;查找错别字。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Perl:STDOUT 重新打开为 FH 仅用于输入

来自分类Dev

逐行读取时,为什么$ {fh}与$ fh表现不同?

来自分类Dev

当您在Perl中包含<FH>,<>或<*>时,内部会发生什么?

来自分类Dev

打印$ fh <<'EOF'`中here-doc的问题:Perl执行here doc

来自分类Dev

open(logPath,'r')为fh的语法错误:

来自分类Dev

当STDOUT输出相同时,未观察到FH输出

来自分类Dev

尝试从文件读取时未初始化的值$ fh

来自分类Dev

三星的2013 LED电视FH60xx系列(UN55FH6030FXZA)电视未打开

来自分类Dev

使用Int 21h ah = 4eh / 4fh:程序找到第一个文件,但找不到其他文件

来自分类Dev

错误:在第35行的<$ fh>中X处的打印字符太宽了(从命令行读取文本文件)

来自分类Dev

Perl中while(每个)和foreach之间的性能差异

来自分类Dev

perl中m / PATTERN /和/ PATTERN /之间的差异

来自分类Dev

perl中m / PATTERN /和/ PATTERN /之间的差异

来自分类Dev

[]和[]()之间的差异

来自分类Dev

“ +:”和“ ::”之间的Scala差异

来自分类Dev

<%=和<%#之间的差异?

来自分类Dev

[[]]和[]之间的R差异

来自分类Dev

$和()之间的差异

来自分类Dev

\%和%%之间的差异

来自分类Dev

<%和<%=之间的差异

来自分类Dev

$ @和$ *之间的差异

来自分类Dev

使用%% A和%A%之间的差异

来自分类Dev

之间的差异| 和$

来自分类Dev

.eq。之间的差异 和==

来自分类Dev

==,=和eq之间的差异

来自分类Dev

/和/ **之间的差异

来自分类Dev

\%和%%之间的差异

来自分类Dev

使用%% A和%A%之间的差异

来自分类Dev

之间的差异| 和$