The
perldata and
perlreftut manpages should explain the basics. If you have a standard perl install, you can read those by typing
man perldata or
perldoc perldata - see the
perl manpage for an index of all the standard documentation.
Anyway, I'd do it something like this:
my %hash = ( # declare top-level hash
key => [] # create new empty arrayref with key "key"
);
# create a new anonymous hashref with the data and
# push it onto the array
push @{$hash{key}}, {
email => 'email@address',
timestamp => time
};
# that will allow you to get at the first email address
# with the following code:
my $email = $hash{key}[0]{email};
If you want to access by your given example ($hash{key}{array}[0]{email}) you need an extra hash:
my %hash = ( key => { array => [] } );
push @{$hash{key}{array}}, {
email => 'email@address',
timestamp => time
};
updated: fixed bug that ikegami found.