#! perl -slw use strict; use Data::Dump qw[ pp ]; use List::Util qw[ sum ]; use constant WINDOW => 10; my @data = map int( rand 10 ), 1 .. 30; my @mAves; my @slide; for my $dp ( @data ) { push @slide, $dp; shift @slide if @slide > WINDOW; push @mAves, sum( @slide ) / WINDOW if @slide == WINDOW; } print join ' ', @data; print join ' ', @mAves; __END__ C:\test>junk 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