#!/usr/bin/perl use strict; use warnings; my %data; while ( ) { chomp; my ($stamp, $reading) = split; next if ! $stamp || ! defined $reading; $data{$stamp}{COUNT}++; $data{$stamp}{MAX} = $reading if ! defined $data{$stamp}{MAX} || $reading > $data{$stamp}{MAX}; $data{$stamp}{MIN} = $reading if ! defined $data{$stamp}{MIN} || $reading < $data{$stamp}{MIN}; $data{$stamp}{SUM} += $reading; } print join "\t" , "TIMESTAMP", "MAX", "MIN", "AVG"; print "\n"; for my $stamp ( sort keys %data ) { print join "\t", $stamp, @{$data{$stamp}}{ qw(MAX MIN) }, $data{$stamp}{SUM} / $data{$stamp}{COUNT}; print "\n"; }