@sorted_keys = sort { $HoH{$b}{'number'} <=> $HoH{$a}->{'number'} } keys %HoH; #### open(FILE,$log); flock (FILE,3); @users=; close(FILE); foreach $lines (@users){ chop($lines); ($ips,$times,$locationold)=split('×',$lines ); $timeoff=$time-$times; push @locations,$locationold if (!$exists{$locationold}); $exists{$locationold}=1; ${$locationold}{online}++; foreach $loc (@locations){ if(${$loc}{online} < "2") { ${$loc}{users} = "user"; } else { ${$loc}{users} = "users"; } } foreach $loc (@locations){ print "${$loc}{online} ${$loc}{users} $loc\n"; } #### 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"; }