我该如何解决以下错误:
readline() on unopened filehandle UPPER at faStat2 line 86.
Run Code Online (Sandbox Code Playgroud)
在以下代码中?
#!/usr/bin/perl
use strict;
use warnings;
...
my $cmd = $0;
$cmd =~ s#.*/##;
($#ARGV > 0) || die "Usage $cmd <tibcoUpperMDLog> <tibcoLowerMDLog> <outFile>\n\n";
open(my $UPPER, $ARGV[0]) || die "Unable to open $ARGV[0]\n";
open(my $LOWER, $ARGV[1]) || die "Unable to open $ARGV[1]\n";
...
while ($msg = <UPPER>) { getUpperBusTimeStampAndBatchSize(\$msg); } #This is the line that the error is complaning about
Run Code Online (Sandbox Code Playgroud)
我相信你需要$UPPER在while循环中使用:
while ($msg = <$UPPER>) ...
Run Code Online (Sandbox Code Playgroud)
某些引用在示例中对文件句柄使用非美元符号变量,但它们也open()没有$句柄名称中的文件句柄.如果你问我这会让人感到困惑,但只要坚持下去,我相信你会好起来的.