Gagnatög, breytuheiti og gæsalappir

Einfaldar breytur í Perl eru allar af sama tagi, hvort sem um er að ræða tölur, texta eða sanngildi. Einfaldar breytur þekkjast á því að nafn þeirra hefst ætíð á $, t.d. $breyta. Tölugildið 0 og tómur textastrengur eru ósönn en allar aðrar breytur eru sannar. Dæmi:
$a = 10;
$b = $a.$a;     # Samskeyting texta, $b inniheldur nú 1010
$c = $b - 1010; # Breytan $c er nú ósönn, núll og tóm

Fylki af breytum þekkjast á því að nafn þeirra hefst ætíð á @, t.d. @fylki. Eins og títt er með fylki í forritunarmálum eru stökin númeruð frá 0 og vísað til þeirra með því að nota hornklofa utanum númerið. Þegar vísað er til staks í fylki með þeim hætti hefur það þó forskeytið $ í stað @, vegna þess að stak úr fylki af breytum er breyta! Dæmi:

@nofn =("ari", "bjarni");
push (@nofn, "ceres");
print "$nofn[2] $nofn[0]"; # Skrifar "ceres ari" á skjáinn (þ.e. STDOUT)

Svokölluð pöruð fylki eru táknuð með forskeytinu % og stök þeirra eru lykluð en ekki númeruð. Til stakanna er vísað með slaufusviga utanum lykil þeirra og þá breytist forskeyti þeirra einnig í $. Dæmi:

$hann = "pabbi";
$foreldri{"pabbi"} = "Jón";
$foreldri{"mamma"} = "Gunna";
print "Pabbi og mamma heita $foreldri{$hann} og $foreldri{'mamma'}";

Takið eftir notkun einfaldra og tvöfaldra gæsalappa til að tákna einn textastreng inni í öðrum. Gæsalappirnar eru jafngildar að öðru leyti en því hvernig farið er með breytur. Innan tvöfaldra gæsalappa verður innihald breytunnar hluti af textanum en innan einfaldra gæsalappa er það nafn breytunnar sem verður hluti af textanum (yfirleitt er ekki ætlunin!). Dæmi:

print "Strengur 'inní' streng\n";
print 'Strengur "inní" streng', "\n";
$hann = "pabbi";
print "Gildi breytunnar er $hann\n";
print 'Nafn breytunnar er $hann';
Athugið að í dæminu hér að frama var sniðtáknið \n notað til að fá nýja línu í úttakið. Það lítur þá svona út:
Strengur 'inní' streng
Strengur "inní" streng
Gildi breytunnar er pabbi
Nafn breytunnar er $hann