@data = ( ["1.6","2.2","3.4","3.6","5.4","6.2","7.1", "8.1", "9.0"], [ 1, 2, 5, 6, 3, 15, 4, 3, 4], [ sort { $a <=> $b } (1, 2, 5, 6, 3, 15, 4, 3, 4) ] ); #### $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]; } }