isn';perl上数组元素中的t numeric

isn';perl上数组元素中的t numeric,perl,Perl,我正在运行一个脚本,该脚本处理同一目录中的文件列表,对这些文件进行一些更改,然后代码工作正常,但是在我添加了使用严格的和使用警告之后,它返回了一个问题: 参数“mobileOriginatedCall”在第72行的数组元素中不是数字 参数“gprsCall”在/5th_edit.pl第96行的数组元素中不是数字 我认为这部分的问题在于: if ( $_ eq "mobileOriginatedCall" ) 及 这些文件的每个文件看起来如下所示,但调用次数不同: 跟踪堆栈: Argument

我正在运行一个脚本,该脚本处理同一目录中的文件列表,对这些文件进行一些更改,然后代码工作正常,但是在我添加了
使用严格的
使用警告
之后,它返回了一个问题:

参数“mobileOriginatedCall”在第72行的数组元素中不是数字

参数“gprsCall”在/5th_edit.pl第96行的数组元素中不是数字

我认为这部分的问题在于:

if ( $_ eq "mobileOriginatedCall" )

这些文件的每个文件看起来如下所示,但调用次数不同:

跟踪堆栈:

Argument "gprsCall" isn't numeric in array element at ./5th_edit.pl line 96.
Argument "gprsCall" isn't numeric in array element at ./5th_edit.pl line 96.
Argument "gprsCall" isn't numeric in array element at ./5th_edit.pl line 96.
Argument "gprsCall" isn't numeric in array element at ./5th_edit.pl line 96.
Argument "gprsCall" isn't numeric in array element at ./5th_edit.pl line 96.
Argument "mobileOriginatedCall" isn't numeric in array element at ./5th_edit.pl line 72.
Argument "gprsCall" isn't numeric in array element at ./5th_edit.pl line 96.
Argument "gprsCall" isn't numeric in array element at ./5th_edit.pl line 96.
Argument "gprsCall" isn't numeric in array element at ./5th_edit.pl line 96.
Argument "gprsCall" isn't numeric in array element at ./5th_edit.pl line 96.
Argument "gprsCall" isn't numeric in array element at ./5th_edit.pl line 96.
Use of uninitialized value in concatenation (.) or string at /usr/perl5/5.8.4/lib/sun4-solaris-64int/Convert/ASN1/_encode.pm line 60.
Use of uninitialized value in concatenation (.) or string at /usr/perl5/5.8.4/lib/sun4-solaris-64int/Convert/ASN1/_encode.pm line 60.
Use of uninitialized value in concatenation (.) or string at /usr/perl5/5.8.4/lib/sun4-solaris-64int/Convert/ASN1/_encode.pm line 60.
Use of uninitialized value in concatenation (.) or string at /usr/perl5/5.8.4/lib/sun4-solaris-64int/Convert/ASN1/_encode.pm line 60.
Use of uninitialized value in concatenation (.) or string at /usr/perl5/5.8.4/lib/sun4-solaris-64int/Convert/ASN1/_encode.pm line 60.
Use of uninitialized value in concatenation (.) or string at /usr/perl5/5.8.4/lib/sun4-solaris-64int/Convert/ASN1/_encode.pm line 60.
Use of uninitialized value in concatenation (.) or string at /usr/perl5/5.8.4/lib/sun4-solaris-64int/Convert/ASN1/_encode.pm line 60.
Use of uninitialized value in concatenation (.) or string at /usr/perl5/5.8.4/lib/sun4-solaris-64int/Convert/ASN1/_encode.pm line 60.
你有

if ( $_ eq "mobileOriginatedCall" ) {
   if ( exists $calleventtag->[$_]->...
这相当于

if ( $_ eq "mobileOriginatedCall" ) {
   if ( exists $calleventtag->["mobileOriginatedCall"]->...
这意味着您正试图获取
$calleventtag
引用的数组的元素编号
mobileOriginatedCall
,这毫无意义
mobileOriginatedCall
不是一个数字。

你有

if ( $_ eq "mobileOriginatedCall" ) {
   if ( exists $calleventtag->[$_]->...
这相当于

if ( $_ eq "mobileOriginatedCall" ) {
   if ( exists $calleventtag->["mobileOriginatedCall"]->...

这意味着您正试图获取
$calleventtag
引用的数组的元素编号
mobileOriginatedCall
,这毫无意义
mobileOriginatedCall
不是一个数字。

使用行号会更容易。@simbabque我用行号更新了警告,你能帮我吗?使用行号会更容易。@simbabque我用行号更新了警告,你能帮我一下吗?我正在运行列表上的循环包含元素列表,所以我只想检查元素是否等于mobileOriginatedCall或gprsCall我只想删除,对不起,我还是新的,你能告诉我如何修复它吗?我不知道你的数据是什么样子,所以我不能确定地这么做,但我的答案确实是猜测。我已经用图片更新了我的问题,这些文件中的每个文件都有不同的调用次数,但它们看起来像这样。我没有看到
callEventDetails
。请提供Data::Dumper(或类似)输出的相关部分。它位于图片的左上角。列表中运行的循环包含元素列表,因此我只想检查元素是否等于mobileOriginatedCall或gprsCall,我只想执行删除,抱歉,我还是新的,你能告诉我如何修复它吗?我不知道你的数据是什么样子,所以我不能确定,但我的答案需要猜测。我已经用图片更新了我的问题,这些文件中的每个文件都有不同的调用次数,但它们看起来像这样。我看不到
callEventDetails
任何地方。请提供Data::Dumper(或类似产品)输出的相关部分。它位于图片的左上方