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;
}