#ex_15-3
#Learning Perl, Appendix A, Exercise 15.3
open(PW,"/etc/passwd") || die "How did you get logged in?";
while (<PW>) {
  chop;
  ($user, $pw, $uid, $gid, $gcos) = split(/:/);
  ($real) = split(/,/, $gcos);
  $real{$user} = $real;
  ($last = $real) =~ s/^(.*[^a-z])?([a-z]+.*).*/$2/i;
  $last =~ tr/A-Z/a-z/;
  $last{$user} = $last;
}
close(PW);

for (sort by_last keys %last) {
  printf "%30s %8s\n", $real{$_}, $_;
}

sub by_last { ($last{$a} cmp $last{$b}) || ($a cmp $b) }

