use Data::Dumper; my $bhash = bless { key1 => 'val1', key2 => 'val2' }, 'FOO'; my %uhash = %$bhash; print Dumper($bhash); print Dumper(\%uhash); print "done\n"; #### $VAR1 = bless( { 'key1' => 'val1', 'key2' => 'val2' }, 'FOO' ); $VAR1 = { 'key1' => 'val1', 'key2' => 'val2' }; done #### my %ahash = ( key1 => 1, key2 => 2 ); bless \%ahash, 'FOO'; #### use Devel::Peek 'Dump'; use Data::Dumper; my %ahash = ( key1 => 'val1', key2 => 'val2' ); print "ORIGINAL HASH:\n"; print Dumper(\%ahash) ."\n"; print Dump(\%ahash) ."\n\n"; my $bhash = bless \%ahash, 'FOO'; print "ORIGINAL HASH (after blessing, note it's now been associated with the 'FOO' package!!):\n"; print Dumper(\%ahash) ."\n"; print Dump(\%ahash) ."\n\n"; #### ORIGINAL HASH: $VAR1 = { 'key1' => 'val1', 'key2' => 'val2' }; SV = RV(0x3b828) at 0x2307c REFCNT = 1 FLAGS = (TEMP,ROK) RV = 0x2dbc4 SV = PVHV(0x8ea80) at 0x2dbc4 REFCNT = 2 FLAGS = (PADBUSY,PADMY,SHAREKEYS) IV = 2 NV = 0 ARRAY = 0x25160 (0:6, 1:2) hash quality = 150.0% KEYS = 2 FILL = 2 MAX = 7 RITER = -1 EITER = 0x0 Elt "key1" HASH = 0x3e4d49 SV = PV(0x23444) at 0x2316c REFCNT = 1 FLAGS = (POK,pPOK) PV = 0x952b8 "val1"\0 CUR = 4 LEN = 5 Elt "key2" HASH = 0x3e4d4a SV = PV(0x2342c) at 0x23250 REFCNT = 1 FLAGS = (POK,pPOK) PV = 0x952e8 "val2"\0 CUR = 4 LEN = 5 ORIGINAL HASH (after blessing, note it's now been associated with the 'FOO' package!!): $VAR1 = bless( { 'key1' => 'val1', 'key2' => 'val2' }, 'FOO' ); SV = RV(0x3b828) at 0x2307c REFCNT = 1 FLAGS = (TEMP,ROK) RV = 0x2dbc4 SV = PVHV(0x8ea80) at 0x2dbc4 REFCNT = 3 FLAGS = (PADBUSY,PADMY,OBJECT,SHAREKEYS) IV = 2 NV = 0 STASH = 0x59b1c "FOO" ARRAY = 0x25160 (0:6, 1:2) hash quality = 150.0% KEYS = 2 FILL = 2 MAX = 7 RITER = -1 EITER = 0x0 Elt "key1" HASH = 0x3e4d49 SV = PV(0x23444) at 0x2316c REFCNT = 1 FLAGS = (POK,pPOK) PV = 0x952b8 "val1"\0 CUR = 4 LEN = 5 Elt "key2" HASH = 0x3e4d4a SV = PV(0x2342c) at 0x23250 REFCNT = 1 FLAGS = (POK,pPOK) PV = 0x952e8 "val2"\0 CUR = 4 LEN = 5 #### # Under Construction