Main Content

Hash of lists in Perl

Archive - Originally posted on "The Horse's Mouth" - 2004-09-09 18:02:29 - Graham Ellis

Here's a short program that reads data into a hash of lists, sorts the keys and displays output data - a simple Perl program showing powerful capabilities of the language.


while () {
my ($name,@temporary) = split;
$want{$name} = \@temporary;
}

foreach $person (sort keys %want) {
print $person," ",$want{$person}[0]," ",$#{$want{$person}}+1,"\n";
}

__DATA__
antonia Perl XML PHP Tcl/Tk MySQL
ethel MySQL Perl Tcl/Tk ASP
iris Perl MySQL Java Tcl/Tk
olivia MySQL Python ASP PHP
uva MySQL Perl Java PHP
adam Tcl/Tk Perl Python MySQL
ed Ruby Perl Java PHP
ivan Ruby Java Perl Tcl/Tk MySQL
orpheus MySQL Ruby Tcl/Tk XML
ulsyees Java PHP Perl


Results:


adam Tcl/Tk 4
antonia Perl 5
ed Ruby 4
ethel MySQL 4
iris Perl 4
ivan Ruby 5
olivia MySQL 4
orpheus MySQL 4
ulsyees Java 3
uva MySQL 4


A little demo I wrote today while talking about more complex data structures.

Things always turn out so easy in Perl!