in reply to Reading the average of a changing varible
One could use a buffer of the desired size of data, and then store the data to be averaged cycling through the buffer. As I cannot replicate your data, I am using random numbers to demonstrate the principle:
use strict; use warnings; # initialize averaging use List::Util 'sum'; my $size = 10; my @store; my $i = -1; while (1){ my $line_count = int rand 100; # store data and output average $store[ ($i+=1) %= $size ] = $line_count; my $average = sum( grep defined, @store )/$size; print "Average line count: $average\n"; }
This way, one would always print the average of the last $size numbers generated. It requires a run up period, so one cannot trust the first $size averages, which I would guess, should not be an issue if you want to run it for a long time.
|
|---|