Can't use string ("HHH2") as a symbol ref while "strict refs" in use at test.pl line 20, <IN>line 1.
添加:
use strict;
no strict 'refs'
#!/usr/bin/perluse 5.010
# (1)
say '(1) ', fileno OUT ? 'yes' : 'no'
# (2)
open OUT, '>', "filename"
print OUT "abc\n"
say '(2) ', fileno OUT ? 'yes' : 'no'
close OUT
# (3)
say '(3) ', fileno OUT ? 'yes' : 'no'
__DATA__
在perl里,fileno()函数可以返回句柄的文件描述符。可以使用fileno函数判断某个变量是否是文件句柄,判断文件句柄是否正常打开,判断文件句柄的类型。
标准输入输出句柄 STDIN, STDOUT和 STDERR 的文件描述符 分别是0,1和 2 (Unix 标准传统),标准文件输入输出句柄的值从3开始,其具体值由句柄打开的顺序决定。若某变异 是一个普通变量,则fileno的返回值 是undef;若某个文件句柄未正常打开或者已关闭,fileno返回的值 也是undef。
DATA其实是个自定义的变量,不是PERL自带的,一般你这句的前后是这样的:open(DATA,"XXX.TXT")
print while(<DATA>)
close(DATA)
上面代码段实现的功能是显示XXX.TXT文件的所有内容,程序里面的DATA可以换为其它名字,例如F1、F2、……
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)