open (PRV, "<$private") or die "Cannot read $private: $!"; my %connected; while () { chomp; my ($far, $dev) = (split(' ', lc($_)))[0,3]; push @{$connected{$far}}, $dev; } foreach my $dev (sort keys %connected) { my $fars = join ", ", @{$connected{$dev}}; print "$dev is connected to: $fars\n"; }