#!/usr/bin/perl use strict; use warnings; use Cwd; my $cwd = cwd; my $file = $cwd . '/usrgrps.txt'; my $gid; my $grp; my $host; my $group; my $userid; my %table = (); open(FILE, "<", $file) or die "Can't open $file:$!"; while() { chomp; ($host, $grp, $gid, $userid) = split(/:/, $_); $group = "$grp:$gid"; push @{$table{$group}}, $userid; } foreach $group (sort keys %table) { print "$group:"; my @users = @{$table{$group}}; print join ',', sort @users; print "\n"; } my $number = values %table; print $number . "\n";