use strict; my %calls; while (<>) { my $line = $_; my ($num, $source, $dest, $type) = split (/\s+/,$line,5); my $key; if ($type eq "GetReply") { $key = $dest . ":" . $source; } else { $key = $source . ":" . $dest; } push @{$calls{$key}}, $line; } foreach my $k (sort keys %calls) { print join('', @{$calls{$k}}),"\n\n"; }