| Asociatyviniai masyvai | 
Asociatyvinis masyvas (angl. hashes) - tai skaliarinių reikšmių masyvas, pasižymintis tuo, kad kiekvienam jo elementui priskiriamas asociatyvinis skaliaras, vadinamas raktu. Taigi, skirtingai nei paprastame masyve, asociotyviniame masyve elementų indeksai yra ne natūriniai skaičiai, o atitinkami skaliarai. Raktų pagalba vienareikšmiškai identifikuojami asociotyvinių masyvų elementai.
Asociatyvinio masyvo pavadinimas prasideda simboliu % Pvz. %hash, %var.
Priskiriant asociatyvinio masyvo elementams reikšmes 
ir raktus, jie atskiriami 
kableliais. Priskyrimas visada 
vyksta poromis t.y. pirma eina raktas, po to elemento reikšmė, pvz:
%hash_a = (1,"fred",2,"barney",3,"betty",4,"wilma");
%hash_b = ("first","fred","second","barney","third","betty","fourth",1.58);
 
Asociatyvinio masyvo elementai
Kreipiantis į 
masyvo elementą, nurodomas jo raktas
figūriniuose skliaustuose { 
}, pvz:
$c = $hash_b{"first"};                          
# $c reikšmė lygi masyvo pirmajam elementui t.y. fred
$hash_b{"fouth"}++;                             #
%hash_b ketvirtas elementas padidinamas 1 
ir dabar lygus 2.58
$hash_a{1} = 4;                                 
# %hash_a pirmas elementas
pakeičiamas į 4 
print $hash_b{"fourth"};                       
# išveda %hash_b 
elementą, turintį raktą "fourth" 
Asociatyvinio masyvo funkcijos
 keys(%hash) - išveda 
masyvo %hash raktų sąrašą.
Jei masyvas tuščias, resultatas tuščias sąrašas.
    %hash_a = (1,"fred",2,"barney",3,"betty",4,"wilma");
    @list = 
keys(%hash_a);                   # masyvo @list 
elementai (1,2,3,4);
 values(%hash) - išveda 
masyvo %hash elementų 
sąrašą.
    
%hash_a = (1,"fred",2,"barney",3,"betty",4,"wilma");
    @var = values(%hash_a); 
                # masyvo @var elementai ("fred","barney","betty","wilma");
  reverse(%hash) -  
sukeičia asociatyvinio
masyvo raktus su elementais, pvz:
    %hash_a = (1,"fred",2,"barney",3,"betty",4,"wilma");
    %backwards = 
reverse(%hash_a);
    print %backwards;                        # rezultatas betty3fred1barney2wilma4 
 
Kaip matome, funkcija reverse() ne tik sukeičia asociatyvinio masyvo raktus ir elementus vietomis, bet ir pačios raktų-elementų poros išdėstomos kita tvarka.
each(%hash) 
-  funkcija, 
gražinanti asociatyvinio masyvo rakto-elemento porą. Ši funkcija gali būti 
sėkmingai naudojama cikluose, pvz:
    while 
(($first,$last) = each(%lastname)) {
        print "Raktas $first elemntas 
$last\n";}
Naudojant %hash  
skaliariniame kontekste, sužinome ar masyvas tuščias, pvz:
    if (%somehash)
    { # jei true, tada .... }
delete $hash{'key'} 
-  funkcija, 
ištrinanti asociatyvinio masyvo rakto-elemento porą, pvz: 
    %fred = 
("aaa","bbb",234.5,34.56); 
    delete $fred{"aaa"};
Asociatyviniuose masyvuose galima operuoti iš karto keliomis reikšmėmis, pvz.
@score{"fred","barney","dino"} = (205,195,30); #sukuriamas masyvas ("fred",205,"barney",195,"dino",30)