我該如何解決以下錯誤「未定義的子程序& main :: resetCounters called at」?該子程序已經建立了原型,但Perl仍然抱怨。下面的代碼是我遇到的問題:我將如何解決以下錯誤「未定義的子程序和main :: resetCounters調用」?
#!/usr/bin/perl
use strict;
use warnings;
...
sub reportStats();
sub resetCounters(); #HERE IS THE PROTOTYPE
sub getUpperBusTimeStampAndBatchSize($);
sub toMs($);
sub tibTimeToMs();
sub calcStdDev();
...
print "\nTimeStamp TPS MPS MaxBat AvgBat MaxLat AvgLat StdLat >5ms %>5ms\n";
resetCounters(); #THIS IS THE LINE CONTAINING THE ERROR
...
sub resetCounters()
# -----------------------------------------------------------
# resets all metrics counters
# -----------------------------------------------------------
{
$tps = 0;
$mps = 0;
$batch = 0;
$maxBatch = 0;
$avgBatch = 0;
$latency = 0;
$latencySum = 0;
$maxLatency = 0;
$avgLatency = 0;
$overThreshold = 0;
$percentOver = 0;
$currentSecond = $second;
@latencies =();
}
swag ---您是否缺少包含缺少功能的模塊?請發佈完整的重現錯誤的最小測試用例。 – 2012-01-05 20:03:08
您使用的是什麼版本的Perl?一個最小的測試用例適用於5.14.2。 – CanSpice 2012-01-05 20:09:17
你的代碼似乎在這裏工作。你確定resetCounters沒有被定義在某個地方嗎?我很想進入Perl調試器,找出resetCounters何時未定義。 – Rohaq 2012-01-05 20:18:22