#!/usr/bin/perl -lw use strict; use constant WINDOW => 10; #my @data = map int( rand 10 ), 1 .. 30; my @data = qw(3 8 8 2 5 5 0 3 8 3 2 3 2 3 5 4 8 7 5 4 6 3 1 6 3 6 0 7 3 3); my @mAves; my $sum = 0; for my $i (0..$#data) { $sum += $data[$i]; $sum -= $data[$i-WINDOW()] if $i >= WINDOW; push @mAves, $sum / WINDOW if $i >= WINDOW-1; } print join ' ', @data; print join ' ', @mAves; __END__ 3 8 8 2 5 5 0 3 8 3 2 3 2 3 5 4 8 7 5 4 6 3 1 6 3 6 0 7 3 3 4.5 4.4 3.9 3.3 3.4 3.4 3.3 4.1 4.5 4.2 4.3 4.7 4.7 4.6 4.9 4.7 4.9 4.1 4.1 3.9 3.8