A referenciák megértése alapvető feltétele annak, hogy hatékonyan használd a Perlt. Mivel a referenciák skalárok, a tömbök és a hash-ek pedig csak skalárokat tartalmazhatnak, a referenciák kulcsfontosságúak ezeknek az adatszerkezeteknek az egymásba ágyazásához.
Referenciákat létező változókhoz és szubrutinokhoz is létrehozhatsz a fordított perjel operátorral (\):
\$scalar skalárreferencia létrehozásához (ez bármilyen skalár lehet, például \1, nem csak egy változó).\@array tömbreferencia létrehozásához.\%hash hash-referencia létrehozásához.\&sub kódreferencia létrehozásához.Létrehozhatsz úgynevezett névtelen referenciát tömbökhöz, hash-ekhez és szubrutinokhoz is:
['Alice', 'Bob', 'Charlie'] névtelen tömbreferencia létrehozásához.{foo => 'a', bar => 'b', baz => 'c'} névtelen hash-referencia létrehozásához.sub { return 1 } névtelen kódreferencia létrehozásához.FIGYELEM: A kapcsos zárójelek a Perlben bizonyos helyzetekben félreérthetők lehetnek. Ha nem azt a hash-referenciát kapod, amire számítasz, tegyél egy pluszjelet a zárójel elé, hogy egyértelművé tedd, például +{}. További információért lásd a kapcsos zárójelekről szóló részt.
A referenciák eléréséhez a nyíl operátort (->) használhatod:
$ref->[0] egy tömbreferencián belüli elem eléréséhez.$ref->{foo} egy hash-referencián belüli érték eléréséhez.$ref->($arg) szubrutin meghívásához kódreferencián keresztül.A bonyolult adatszerkezetekben, például többdimenziós tömbökben és egymásba ágyazott hash-ekben lévő adatokat indexek láncolásával érheted el, például $ref->{foo}[0]{bar} (ugyanaz, mint a $ref->{foo}->[0]->{bar}).
Ha egy teljes tömböt vagy hash-t szeretnél visszafejteni, használhatod a nyíl operátort, amelyet rendre a @* vagy a %* követ, például $ref->@* vagy $ref->%*.
Egy tömbreferencia vagy hash-referencia szeleteit is megkaphatod, ha a *-ot indexre cseréled, például $ref->@[0..2] vagy $ref->@{'Foo', 'Bar'}.
Szeleteknél a szigilvariáció ugyanúgy érvényes, mint a tömb- és hash-változóknál.