$log = File::Tail->new( name => $MAILLOG, tail => -1); while (defined(my $line=$log->read)) { IncrData(Get_Hits($line)); if (($msgs{Total} % 200) == 1) { Create_Graph(); } } sub IncrData ($) { my $values = shift; if (exists $hits{$values} ) { ${$hits{$values}}++; } else { my $idx = 0; my $endIdx = scalar(@{$data[0]}); while ($idx < $endIdx && $data[0][$idx] < $values) { $idx++; } splice(@{$data[0]},$idx,0,$values); splice(@{$data[1]},$idx,0,1); $hits{$values} = \$data[1][$idx]; } }