#ex_15-3 #Learning Perl Appendix A, Exercise 15.3 open(PW,"/etc/passwd") || die "How did you get logged in?"; while () { chomp; ($user, $gcos) = (split /:/)[0,4]; ($real) = split(/,/, $gcos); $real{$user} = $real; ($last) = (split /\s+/, $real)[-1]; $last{$user} = "\L$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) }