 
 
 
 
 
  
 
 
@tomb = ('elso', 2, $harom);	\# háromelemű tömb
%szinek = (			\# asszociatív tömb
'piros' => 0x00f,
'kék' => 0x0f0,
'zöld' => 0xf00,
);
És az utóbbival ekvivalens alak:
%szinek = ( 'piros' , 0x00f, 'kék' , 0x0f0, 'zöld' , 0xf00, ); #egyszerű felsorolás, párosával
Értékadásokban (rész)tömböket is értékül adhatunk. Ezekben az esetekben a balérték listája az első elemtől kezdve addig töltődik fel, amíg van új elem a jobb oldalon. Az értékadás akkor és csak akkor érvényes, ha a baloldalon legális balértékek szerepelnek.
($a,$b,$c)=(1,2,3) #a változók sorban értéket kapnak ($a,$b,@maradek)=@valami #ez is helyes
Tömb balértékként használata csak utolsó elemnek érdemes, mert egy korábbi tömb az összes jobboldalt magába olvassa. Ez jó a lokális paraméterek átvételénél. A $[ változó mutatja, hogy a tömbök melyik indexen kezdődnek (ez a C-ben 0). Ennek értéke módosítható, ezért a következő két értékadás ekvivalens:
@tomb=() #üressé teszi a tömböt $#tomb=$[-1; #a tömb hosszát -1-re állítja
Skalár környezetben a tömb felhasználása a tömb aktuális hosszát adja vissza. Értékadásnál a résztömbök automatikusan elemenként bemásolódnak, így a keletkező tömb homogén lesz.
@tomb=(@lista1,@lista2,&alprg)
Egy asszociatív tömb skalár környezetben visszaadja, hogy van-e benne kulcs-érték pár. Ez csupán arra jó, hogy a hash-elő algoritmus hatékonyságát vizsgáljuk.