#!/usr/local/apps/perl/bin/perl ############################################################################# # # # WHO: John L. Moreland # # # # WHAT: records # # # # WHY: Demonstrates complex data structures. # # # # WHERE: Opus Software # # # # WHEN: Wed Sep 23 19:49:10 PDT 1998 # # # # HOW: PERL # # # ############################################################################# print "Static initialization\n"; $foo = { fi1 => "Hello", fi2 => 3.7 }; print " " . $foo->{fi1} . "\n"; print " " . $foo->{fi2} . "\n"; ############################################################################# print "Dynamic initialization\n"; $bar->{fi1} = "World"; $bar->{fi2} = 42; print " " . $bar->{fi1} . "\n"; print " " . $bar->{fi2} . "\n"; ############################################################################# print "List of hashes\n"; @blat = (); $blat[0]->{fi1} = "Hello"; $blat[0]->{fi2} = 3.14; $blat[1]->{fi1} = "World"; $blat[1]->{fi2} = 42; for ( $i=0; $i<=$#blat; $i++ ) { print " $i\n"; foreach $key ( keys %{$blat[$i]} ) { print " $key = " . $blat[$i]->{$key} . "\n"; } } ############################################################################# print "Hash of lists\n"; %splat = (); $splat{fi1}->[0] = "Hello"; $splat{fi1}->[1] = 3.14; $splat{fi2}->[0] = "World"; $splat{fi2}->[1] = 42; foreach $key ( keys %splat ) { print " $key\n"; for ( $i=0; $i<@{$splat{$key}}; $i++ ) { print " $i = " . $splat{$key}->[$i] . "\n"; } }