#! perl -slw use strict; package Thing; sub new { bless [], $_[0] }; sub push { push @{ shift() }, @_ } package main; use Data::Dump qw[ pp ]; my %x = ( foo => [ map Thing->new, 1 .. 10 ] ); $x{foo}[0]->push( 1,2,3 ); pp \%x; __END__ C:\test>junk66 { foo => [ bless([1, 2, 3], "Thing"), bless([], "Thing"), bless([], "Thing"), bless([], "Thing"), bless([], "Thing"), bless([], "Thing"), bless([], "Thing"), bless([], "Thing"), bless([], "Thing"), bless([], "Thing"), ], }