use Data::Dumper; sub mylog{ print @_ } my %shared_data = ( 'dtLastRcvMsg' => time, 'dummy2' => 33, 'dummy' => 5 ); my $p1 = \%shared_data; mylog( "P1: ($p1) " . Dumper( $p1 )); $self->{'shared_data'} = $p1; my $p2 = $self->{'shared_data'}; mylog( "P2: ($p2)" . Dumper( $p2 )); __END__ c:\test\691728>..\junk.pl P1: (HASH(0x18245bc)) $VAR1 = { 'dummy2' => 33, 'dummy' => 5, 'dtLastRcvMsg' => 1213694057 }; P2: (HASH(0x18245bc))$VAR1 = { 'dummy2' => 33, 'dummy' => 5, 'dtLastRcvMsg' => 1213694057 };