use of uninitialized value $line in scalar chomp at 2.3.pl l

股骨虫2022-10-04 11:39:541条回答

use of uninitialized value $line in scalar chomp at 2.3.pl line 10,是哪里出了错?
use strict;
use warnings;
open IN_FILE,"

已提交,审核后显示!提交回复

共1条回复
风云变化2010 共回答了13个问题 | 采纳率92.3%
"use of uninitialized value $line" 说你在第10行使用了未定义的值$line ;
09.$line = ; # while循环到最后一行后,没有退出,还要再读入
10.chomp($line); #读入的内容为空,即$line未定义
改成下面的方式:
while(1){
$line = ;
if(not defined($line)){
x05last;
}
chomp($line);
print "$line ";
$a=$a+$line;
$number++;
}
所以先进行判断,$line是否有值,无则退出
尽管不知道你在考什么,但是大概明白了这是在求一个txt文件中一列数字的平均数
1年前

相关推荐

perl use uninitialized value,之前运行Ok的,不影响结果但多出来很多这样语句.
perl use uninitialized value,之前运行Ok的,不影响结果但多出来很多这样语句.
Use of uninitialized value in split at /ShipWeb.pm line 84.
Use of uninitialized value in split at /ShipWeb.pm line 85.
Use of uninitialized value in split at /ShipWeb.pm line 86.
Use of uninitialized value in split at ShipWeb.pm line 87.
Use of uninitialized value in split at ShipWeb.pm line 88.
82 foreach my $i (0..$#list){
83 ($sShip,) = split(/ /,$list[$i]{$column[0]});
84 ($PN,) = split(/ /,$list[$i]{$column[1]});
85 ($Lcycle,) = split(/ /,$list[$i]{$column[2]});
86 ($WIPrev,) = split(/ /,$list[$i]{$column[3]});
87 ($FGIrev,) = split(/ /,$list[$i]{$column[4]});
88 ($ShipMode,) = split(/ /,$list[$i]{$column[5]});
89 if ($ShipMode){
90 print FH "$sShip|$PN|$Lcycle|$WIPrev|$FGIrev|$ShipModen";}
91 }
xieyiduan1年前1
cooleader 共回答了9个问题 | 采纳率88.9%
1) 定义 $column 的时候,把字串写错了.
For example:----------
$list[$i]->{col1} = 1
$list[$i]->{col2} = 2
$list[$i]->{col3} = 3
$list[$i]->{col4} = 4
$list[$i]->{col5} = 5
$column[0] = "col1"
$column[0] = "xol2"
$column[0] = "xol3"
$column[0] = "xol4"
$column[0] = "xol5"
----------------------------
2) 定义 $list 的时候,hash key 没有正确的定义.
$list[$i]->{xol2} = 2
$list[$i]->{xol3} = 3
等等.
解决方法:
在for前一行写上如下两行.然后实行一下,再看看error log file.
#use Data::Dumper;
warn Dumper $list[0]; #$list的第一个要素肯定存在.
warn Dumper @column;
die;
你看看list中的 hash key 和 @column 中定义的 key 是否相同.
回避方法:
把有可能出错的地方都实行一下 if defined .
if( defined $list[$i]{$column[1]} ) {
( $PN ,) = split( / / ,$list[$i]{$column[1]} );
}