my @now = localtime( time ); my %container; # use this rather than a symbolic ref foreach my $line ( @data ) { my ( $timestamp, $page, $moredata ) = split /|/, $line; my @hits = localtime( $timestamp ); $container{$page}[0]++ if $hits[7] == $now[7]; $container{$page}[1]++ if $hits[4] == $now[4]; $container{$page}[2]++ if $hits[5] == $now[5]; $maxCount{$page}++; } my @pages = keys %maxCount; my ( @dAry, @wAry, @mAry ); foreach my $page ( keys %maxCount ) { push @dAry, $container{$page}[0]; push @wAry, $container{$page}[1]; push @mAry, $container{$page}[2]; } my $dAry = join ',', @dAry; my $wAry = join ',', @wAry; my $mAry = join ',', @mAry;