#!/usr/bin/perl -nl # Use Perl's multi-byte alignment code, via sprintf, while # performing a rudimentary check for duplicate names and # removing duplicate name,email pairs. use Encode; BEGIN { my (%elide, %seen, %name) } chomp; my ($name, $email) = split '\0', decode ('UTF-8', $_); if ($elide{"!$name"}) { ; # ignore this author } elsif (index ($name, '!') == 0) { $elide{$name}++; } elsif ($seen{$name}++) { warn "$0: NO-THANKS: duplicate name: $name\n"; } else { print encode ('UTF-8', sprintf ('%-36s', $name)), $email; }