Perl:编译器不允许使用数据结构索引



Im将开始和结束时间分配给下的第一个和最后一个条目

my $from_time = $self->{'r_instrDataEvent'}->{'ulsaStats'}->[0]->{'epochtime'};
print "$from_time";
my $to_time = $#{$self->{'r_instrDataEvent'}->{'ulsaStats'}}->{'epochtime'};
print "FROM is $from_time to is $to_time";

但这会产生以下错误(指前2行(

Use of uninitialized value $from_time in string at /data/ddp/current/analysis/TOR/elasticsearch/handlers/UlsaSpectrumAnalyser.pm line 103.
Can't use string ("0") as a HASH ref while "strict refs" in use at /data/ddp/current/analysis/TOR/elasticsearch/handlers/UlsaSpectrumAnalyser.pm line 104.

错误消息表示其中一个表达式的值为"0":

$self
$self->{'r_instrDataEvent'}
$self->{'r_instrDataEvent'}{'ulsaStats'}[0]

很明显,您不希望此表达式的值为"0",因此您需要在上游进行一些调试。

您熟悉perl调试器(perl -d ...(吗?调试器将允许您将代码运行到上面有问题的行,然后检查这些表达式,以确定哪里没有达到您的期望。

最新更新