in reply to Re^2: Sorting a hash value that is a list
in thread Sorting a hash value that is a list

As another monk mentioned, most of the reasons people think they can't install from CPAN are in fact non-reasons.

But either way, the uniq function from List::MoreUtils is easy for you to implement yourself:

sub uniq (@) { my %seen = (); grep { not $seen{$_}++ } @_; }

As it happens, I just copied and pasted that code from List/MoreUtils.pm. However, one reason to prefer List::MoreUtils over a home-made version, is that List::MoreUtils provides an XS version which (over large lists) may run a little faster.

Replies are listed 'Best First'.
Re^4: Sorting a hash value that is a list
by g_string (Initiate) on Feb 29, 2012 at 08:37 UTC

        Folks, I got a working solution


        Thanks to 'balajesuri' from 'The UNIX and Linux Forums' for this solution.


        #!/usr/bin/perl use strict; use warnings; my ($gid, $grp, $host, $group, $userid); my %table; open FILE, "< /path/to/usrgrps.txt"; foreach (<FILE>) { chomp; ($host, $grp, $gid, $userid) = split /:/; $group = "$grp:$gid"; if (length ($userid) != 0) { (defined $table{$group} && $table{$group} =~ /$_/) ? next : ($ +table{$group}.="$_,") foreach (split /,/, $userid); } else { $table{$group} = ""; } } close FILE; foreach (sort keys %table) { $table{$_} =~ s/,$//; print "$_:$table{$_}\n"; }

        Thank again to all for taking the time to look at this!!


        All the best, g