Hash Perl

$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";