my @one; my @two; my @three; push @two, \@three; push @three,\@two; push @one, \@two, \@three; use Devel::Peek; Dump(\@one ); __END__ SV = RV(0x3e8a90) at 0x3e8a84 REFCNT = 1 FLAGS = (TEMP,ROK) RV = 0x98a404 SV = PVAV(0x3e995c) at 0x98a404 REFCNT = 2 FLAGS = (PADMY) ARRAY = 0x997dec FILL = 1 MAX = 3 ARYLEN = 0x0 FLAGS = (REAL) Elt No. 0 SV = RV(0x98a4b0) at 0x98a4a4 REFCNT = 1 FLAGS = (ROK) RV = 0x98a424 SV = PVAV(0x3e9b84) at 0x98a424 REFCNT = 3 FLAGS = (PADMY) ARRAY = 0x9b1d7c FILL = 0 MAX = 3 ARYLEN = 0x0 FLAGS = (REAL) Elt No. 0 SV = RV(0x3e8b30) at 0x3e8b24 REFCNT = 1 FLAGS = (ROK) RV = 0x98a444 Elt No. 1 SV = RV(0x3e8970) at 0x3e8964 REFCNT = 1 FLAGS = (ROK) RV = 0x98a444 SV = PVAV(0x3e9b9c) at 0x98a444 REFCNT = 3 FLAGS = (PADMY) ARRAY = 0x994b2c FILL = 0 MAX = 3 ARYLEN = 0x0 FLAGS = (REAL) Elt No. 0 SV = RV(0x3e8b80) at 0x3e8b74 REFCNT = 1 FLAGS = (ROK) RV = 0x98a424