#!/usr/local/bin/perl -w
my $addressbook = "addressbook";
open(BOOK, "<$addressbook") ||
die "Cannot open $addressbook\n";
my @addresses = ();
my ($name, $address, $lastname);
while (<BOOK>) {
chomp;
($name, $address) = split /:/;
($lastname = $name) =~ s/.*\s//;
push(@addresses, {
lastname => $lastname,
name => $name,
address => $address
});
}
close(BOOK);
foreach $address (sort byLastName @addresses) {
printf "%-20s | %s\n",
$address->{name}, $address->{address};
}
sub byLastName { $a->{lastname} cmp $b->{lastname} }
|