@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.