我有一个包含与浮点数一些行的文件,像这样:读线,计算平均,在Perl
1.66278886795044
1.61858296394348
1.66523003578186
1.62150096893311
1.6725389957428
我尝试打开该文件,计算所有行的平均值,然后将平均值写入相同的文件。凡5
代表的项目数量,预计产量因此将是:
1.66278886795044
1.61858296394348
1.66523003578186
1.62150096893311
1.6725389957428
================
AVERAGE after 5 runs: 1.6481283664703
考虑到我可以从一个变量上涨脚本$amountofloops
得到运行的量,我认为这将做到这一点:
open(my $overviewhandle, '>>', 'overview.txt');
chomp(my @durations = <$overviewhandle>);
my $avgtime = 0;
foreach my $duration (@durations) {
$avgtime += $duration;
}
$avgtime = $avgtime/$amountofloops;
print $overviewhandle "================\nAVERAGE after $amountofloops runs: $avgtime";
close $overviewhandle;
但是,$avgtime
一直返回零,我不知道为什么。我认为这个号码没有被解析为一个数字。
经过测试,我发现'$#durations'返回一个小于数组的实际长度。任何想法为什么这样? –
找出来了。你的方法只返回最后一个项目的索引。更好的方法描述[这里](http://stackoverflow.com/questions/7406807/find-size-of-an-array-in-perl)。我用'标量@持续时间'。 –
对不起,关于一个关闭,我只是测试文件模式写,而不是看着那个。在现在的答案中改变了它 – Vorsprung