Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 为什么这个程序找不到单词';错误';在我的文本文件中? open(LOG,“logfile.txt”)或die“无法打开$logfile:$!”; 打印“\n”; while(){ 打印if/\berror\b/i; } 关闭(日志);_Perl_Perl Io - Fatal编程技术网

Perl 为什么这个程序找不到单词';错误';在我的文本文件中? open(LOG,“logfile.txt”)或die“无法打开$logfile:$!”; 打印“\n”; while(){ 打印if/\berror\b/i; } 关闭(日志);

Perl 为什么这个程序找不到单词';错误';在我的文本文件中? open(LOG,“logfile.txt”)或die“无法打开$logfile:$!”; 打印“\n”; while(){ 打印if/\berror\b/i; } 关闭(日志);,perl,perl-io,Perl,Perl Io,打开日志,“logfile.txt”; 而(){ 打印if/\berror\b/i; }您有一个错误: open(LOG,"logfile.txt") or die "Unable to open $logfile:$!"; print "\n"; while(<$LOG>){ print if /\berror\b/i; } close(LOG); while() 应该读 while (<$LOG>) while() 文件句柄不是变量,因此没有$。您的键入实

打开日志,“logfile.txt”;
而(){
打印if/\berror\b/i;
}

您有一个错误:

open(LOG,"logfile.txt") or die "Unable to open $logfile:$!";
print "\n";
while(<$LOG>){
  print if /\berror\b/i;
}
close(LOG);
while()
应该读

while (<$LOG>)
while()

文件句柄不是变量,因此没有$。

您的键入实际上使您更接近于以正确的方式打开文件,即使用推荐的3参数格式

使用严格;
使用警告;

打开(我的$log,如果您想要更轻松的
打开
,您可以这样做:

use strict;
use warnings;

open(my $log, '<', "logfile.txt") or die "Open failed : $logfile : $!";
while (<$log>) {
    ...
}
@ARGV='logfile.txt';
而{
打印if/\berror\b/i;
}

filehandles可以是变量如果你使用词法filehandles+1@jmz,你是唯一一个(到目前为止)明确回答这个问题的人。也许你应该用“filehandle”来澄清这一点您是指表示打开文件的动态范围的文字标识符。使用strict.use strict.use strict.use strict.use warnings;甚至比使用strictuse 3-arg打开和词法文件句柄更重要:)
use strict;
use warnings;

open(my $log, '<', "logfile.txt") or die "Open failed : $logfile : $!";
while (<$log>) {
    ...
}
@ARGV = 'logfile.txt';
while ( <> ) { 
    print if /\berror\b/i;
}