On Fri, 17 Jul 2015 15:11:13 +0200
Vincent Lequertier <s...@riseup.net> wrote:

> Hi,
> 
> I have the following structure :
> 
> $hash{$date} = {
>                      'ip'     => $ip,
>                      'action'   => $action,
>                  };
> 
> witch produce data like :
> 
> $VAR1 = '[15/Jul/2015:10:30:03 +0200]';
> $VAR2 = {
>            'ip'     => 'xxx.xxx.xxx.xxx',
>            'action' => 'GET xxx'
>          };
> 
> and an array of ip addresses, say @ip
> 
> My question is how can I display the content of %hash in the order of 
> @ip, assuming %hash has the same length as @ip ?
> 
> Thank you
> 

UNTESTED:

sub ip_cmp {
  my @ip_a = split /\./, $a;
  my @ip_b = split /\./, $b;

  for my $i ( 0 .. 3 ){
    my $cmp = ( $ip_a[$i] || 0 ) <=> ( $ip_b[$1] || 0 );
    return $cmp if $cmp != 0;
 }
  return 0;
}

for my $hash_ref ( sort ip_cmp keys %hash ){
    # display $hash_ref->{$date}
}


-- 
Don't stop where the ink does.
        Shawn

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to