use strict; use warnings; use CGI::Carp qw/fatalsToBrowser/; open(FILE,$log) or die "Couldn't open $log: $!"; flock (FILE,3) or die "Couldn't lock $log: $!"; my @users=; close(FILE); chomp @users; my %locations; foreach my $lines (@users){ my ($ips,$times,$location)=split('×',$lines); $timeoff=$time-$times; if ( not exists $locations{$location}) { $locations{$location}={online => 1}; } else { $locations{$location}->{'online'}++; } } $location{$_}->{'usertext'}=$location{$_}->{'online'}==1? 'user' : 'users' for keys %locations; foreach my $loc (sort { $b->{'online'} <=> $a->{'online'} }keys %locations){ my $href = $locations{$loc}; print $href->{'online'}." ".$href->{'usertext'}."$loc\n"; }