当前位置:  开发笔记 > 编程语言 > 正文

为什么普通字符串可以用作文件句柄?

如何解决《为什么普通字符串可以用作文件句柄?》经验,为你挑选了1个好方法。



1> ikegami..:

以下两个语句是相同的(如果没有子命名FOO):

my $x = FOO;
my $x = 'FOO';

所以,以下是等价的并不奇怪:

open FH, ...
open 'FH', ...

同样的道理

print { FH } ...
print { 'FH' } ...

并为

readline(FH)
readline('FH')

请注意,以下内容不相同

print FH ...
print 'FH' ...

因为解析器专门查看是否提供了一个裸字来print确定参数的含义.

print LIST           # Prints list to selected handle
print BAREWORD LIST  # Prints list to specified handle
print { EXPR } LIST  # Prints list to specified handle

请注意,以下内容不相同


<'FH'>

因为解析器专门查看是否在内部使用裸字<>来确定运算符的含义.

   # readline(BAREWORD)
       # glob(EXPR)


@TLP,警告不是将裸字用作字符串,而是使用小写的裸字,因为它们是由Perl保留的.至少,正式.实际上,还需要一个功能来为所有命名空间添加新名称,小写或不添加.应该废除这个警告.它是`use strict;'禁止将裸字作为字符串.
推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有