$string = "Here's a string."; @array = (1, 2, 3); %hash = ('fruit' => 'apples', 'vegetable' => 'corn'); sub printem { print shift; } $complex = { string => $string, number => 3.1415926, array => [@array], hash => {%hash}, arrayreference => \@array, hashreference => \%hash, sub => \&printem, anonymoussub => sub {print shift;}, handle => \*STDOUT, }; print $complex->{string}, "\n"; print $complex->{number}, "\n"; print $complex->{array}[0], "\n"; print $complex->{hash}{fruit}, "\n"; print ${$complex->{arrayreference}}[0], "\n"; print ${$complex->{hashreference}}{"fruit"}, "\n"; $complex->{sub}->("Subroutine call.\n"); $complex->{anonymoussub}->("Anonymous subroutine call.\n"); print {$complex->{handle}} "Text printed to a handle.", "\n";