use strict;use warnings;open IN_FILE, "<data.txt" or die("Could not open data.txt");my $line;my $a=0;my $number=0;while(1){$line = <IN_FILE>;chomp($line);if(not defined($line)){last;}print "$line ";$a=$a+$line;$number++;}print "\n";my $average=$a/$number;print "the average is $average";
2 回答

拉丁的傳說(shuō)
TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊
"use of uninitialized value $line" 說(shuō)你在第10行使用了未定義的值$line ;
09. $line = <IN_FILE>; # while循環(huán)到最后一行后,沒(méi)有退出,還要再讀入
10. chomp($line); #讀入的內(nèi)容為空,即$line未定義
改成下面的方式:
while(1){
$line = <IN_FILE>;
if(not defined($line)){
last;
}
chomp($line);
print "$line ";
$a=$a+$line;
$number++;
}
所以先進(jìn)行判斷,$line是否有值,無(wú)則退出
盡管不知道你在考什么,但是大概明白了這是在求一個(gè)txt文件中一列數(shù)字的平均數(shù)
添加回答
舉報(bào)
0/150
提交
取消