>
>And I'm thinking, perhaps I should get a unique list of all countries included 
>in this logfile and only then I can aggregate their Bytes by using regexp.
>
>Can you give me some hints on how I can accomplish this goal..
>


No regex is needed.You can use a hash to store the 'country' column and 'bytes' 
column then sort them for output.

I wrote this test script and it works fine for me.

use strict;

my $ab = qq {
7491    | 210.23.185.123   | PH    202597706
7491    | 210.23.169.91    | PH    202594221
7303    | 201.252.130.245  | AR    201955854
9318    | 210.205.6.225    | KR    201892149
9930    | 210.19.229.57    | MY    201418551
9600    | 210.251.253.180  | JP    201362230
9929    | 210.82.176.84    | CN    201069109
7491    | 210.23.182.102   | PH    201006342
9600    | 210.251.253.180  | JP    201322301
4134    | 58.215.76.36     | CN    170125144
4844    | 210.23.5.177     | SG    170067928
};

my %re;
for (split/\n/,$ab) {
    next unless $_;
    my ($country,$bytes) = (split)[4,5];
    $re{$country}+=$bytes;
}

for (sort { $re{$b} <=> $re{$a} } keys %re) {
    print "$_:  $re{$_}\n";
}

__END__


Hope it helps.


--
Books below translated by me to Chinese.
Practical mod_perl: http://home.earthlink.net/~pangj/mod_perl/
Squid the Definitive Guide: http://home.earthlink.net/~pangj/squid/

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to