beast wrote:
> 
> What is the reason this following works
>   $hours{$hour}->{count} + 1
> 
> but this not works?
>   $hours{$hour}->{count}++
> 
> 
> it actually part of this code:
> 
>       $hours{$hour} = { occur => $occur_utc,
>                         delay => $hours{$hour}->{delay} + $delay,
>                         count => $hours{$hour}->{count} + 1
>                       };

Because the /value/ of

  $hours{$hour}->{count}++

is the same as the value of

  $hours{$hour}->{count}

It happens to have the side-effect of incrementing the value of the hash 
element.

Note that it can be written more concisely as

  $hours{$hour}{count}

(any pair of ]->[ or }->{ or a mixture of the two can have the indirection arrow
removed.)

I think you want

  $hours{$hour} = {
    occur => $occur_utc,
    delay => $hours{$hour}{delay} + $delay,
    count => ++$hours{$hour}{count},
  };

HTH,

Rob



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


Reply via email to