On Friday 05 August 2005 01:37, Jason Normandin wrote:
[..]
>
> if ($protocol =~ /PING REQUEST/) {
>       push @{$pingRequests{$destination}}, {
>               time => $time,
>               sequenceNumber=>$sequenceNumber
>       };
> }
> elsif ($protocol =~ /PING RESPONSE/) {
>       push @{$pingResponses{$source}}, {
>               time => $time,
>               sequenceNumber=>$sequenceNumber
[..]

> What I want to do however is track the response time between a request and
> response. This would be identified by the same sequence number for a
> request/respone pair. I would like to take the time value for each and
> subtract the response time from the request time to get the response time
> and add that to the response hash.
>
> I cannot figure out how to access the contents of the anonymous hash for
> that one value.
>
> Sudo code would be:
>
> elsif ($protocol =~ /PING RESPONSE/) {
>         responseTime=pingRequests{$source}->time -
> pingResponses{$destination)->time if pingRequests{$source}->sequenceNumber
> = pingResponses{$destination}->sequenceNumber;
>
>       push @{$pingResponses{$source}}, {
>               time => $time,
>               sequenceNumber=>$sequenceNumber
>                 responseTime=>$responseTime
>
>       };
> }
>


Hi Jason,

I think you might want to take a look at the map function - using it, you 
could do something like this:

  my $response = $pingResponse{$destination};
  my $responseTime;
  map { $responseTime = ($response->{'time'} - $_->{'time'})
             if ($_->{'sequenceNumber'} == $response->{'sequenceNumber'})
           } @{$pingRequests{$destination}};

> DOes that make any sense? Can I do what I am trying to accomplish using the
> logic above? If so, what is that syntax?

I'm not sure if I would approach your problem the same way - I don't know what 
exactly you need to have as result, but I would think about storing all 
request/response pairs in a hash with the sequence number as key. This might 
make things easier.

HTH,

Philipp

-- 
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