in reply to Faster than the speed of sound (was: When the Best Solution Isn't)
in thread When the Best Solution Isn't
The goal is to sort /etc/passwd by the third field:
It then goes on to describe the Orcish and Schwartzian under the heading of 'Advanced sorting: the cool ways'Well, this will work, and it's efficient enough, but there are prettier, more Perl-ish ways to present the solution.open PASSWD, "/etc/passwd" or die; @passwd = <PASSWD>; @key = map # Create an array @key contain +ing { (split /:/)[2] } @passwd; # just the keys (user ids). @by_uid_index = sort { # Sort indices, using @key arr +ay. $key[$a] <=> $key[$b] } 0 .. $#key; @by_uid = @passwd[@by_uid_index]; # Now, rearrange the contents +of # @passwd into sorted order. Or just combine the last two statements: @by_uid = @passwd[sort { $key[$a] <=> $key[$b] } 0 .. $#key];
-Blake
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Faster than the speed of sound
by Aristotle (Chancellor) on Sep 23, 2002 at 18:04 UTC | |
by blakem (Monsignor) on Sep 23, 2002 at 18:12 UTC |