in reply to multiple layers of referencing and dereferencing

${${${$_[0]}[0]}[1]}{"dog"} = 15;
ewwww! You'll be giving Perl a bad name. :-)
I tried to store using the same syntax as recovering but it did not work.
Are you sure? this works ok here:
#! /usr/bin/perl use strict; use warnings; use Data::Dumper; $Data::Dumper::Indent = 2; my $data; $data->[0][0][0]{dog} = 15; print Dumper $data;
$VAR1 = [ [ [ { 'dog' => 15 } ] ] ];