perl -MDevel::Peek -e 'Dump(%{$_[0]})' SV = PVHV(0x157010280) at 0x15700ae40 REFCNT = 1 FLAGS = (SHAREKEYS) ARRAY = 0x0 KEYS = 0 FILL = 0 MAX = 7 But what is this: perl -MDevel::Peek -e 'Dump(%$_[0])' SV = NULL(0x0) at 0x100939eb8 REFCNT = 2147483641 FLAGS = (READONLY,PROTECT) and this: perl -MDevel::Peek -e 'Dump(%$^[0])' SV = IV(0x159825cf0) at 0x159825d00 REFCNT = 1 FLAGS = (PADTMP,IOK,pIOK) IV = 5796572328 perl -MDevel::Peek -e 'Dump(%{$^[0]})' Number found where operator expected (Missing operator before "0"?)