所以我一直在使用数组的报告系统,但每当我尝试发送报告时,它都会给我这个
Use of uninitialized value $intReason in array element at Server/Systems/Messaging.pm line 26.
我认为这不是一个错误,更像是一个警告,因为一切正常,但它给了我这个。
这是代码
method handleSendReport($strData, $objClient){
my @arrData = split('%', $strData);
my $intPID = $arrData[5];
my $intReason = $arrData[6];
my $arrNickname = $arrData[7];
my @reasons = ("Swearing", "Sexual Language", "Racial Words", "Personal Info", "Email Address", "Real Name", "Name Calling", "Bad Penguin Name");
$objClient->botSay($reasons[$intReason]); #Line 26
}
答案 0 :(得分:5)
$strData
中的字符串包含少于六个%
,导致$intReason
(和$arrNickname
)未定义。
因此,
$objClient->botSay($reasons[$intReason]);
相当于
$objClient->botSay($reasons[undef]);
警告并且等同于
$objClient->botSay($reasons[0]);
答案 1 :(得分:0)
在此之前:
my $intPID = $arrData[5];
尝试打印您将分配给$intPID
的值
use Data::Dumper;
print Dumper $arrData[5];
您将收到use of uninitialized...
警告。这意味着您的数组没有在第五个索引上定义的元素。