【发布时间】:2013-07-11 17:53:53
【问题描述】:
在下面的代码中如果printf语句中FILE和(之间有空格
喜欢
printf FILE ("Test string inline\n");
Perl 会将FILE 视为文件句柄,否则
printf FILE("Test string inline\n");
将被视为子程序调用(如果 FILE perl 没有定义子程序,则会出现错误 Undefined subroutine &main::FILE called at ./test.pl line xx )。 Perl 没有更好的方法来实现这一点吗? (也许这就是为什么裸字文件句柄被认为是过时的?)
#!/usr/bin/perl
use warnings;
open(FILE,">test.txt");
printf FILE ("Test string inline\n");
close(FILE);
sub FILE
{
return("Test string subroutine\n");
}
【问题讨论】:
-
使用
print(FILE "String")或print FILE "String"。 -
Barewords 文件句柄被认为是过时的,因为它们引用了全局变量。
-
您能改写一下这个问题吗?这是无法回答的。您从谈论 Perl 语法到询问是否可以改进某些未提及的实现,而没有提及应该衡量这种改进的指标。
标签: perl file filehandle