Datové typy
Perl nabízí na rozdíl od některých jiných programovacích jazyků relativně málo datových typů. Také neumožňuje vytvářet nové pojmenované proměnné. Perl implementuje pouze tři základní datové typy - skaláry, pole skalárů a hashe skalárů (asociativní pole).Skaláry jsou základním datovým typem a tvoří se z nich ostatní, složitější datové typy. Jsou určeny k uchovávání jediné hodnoty, kterou může být řetězec, pole, číslo nebo odkaz. Pole je uspořádaný seznam skalárů. K jednotlivým položkám se přistupuje pomocí indexu, který implicitně začíná od 0. Hash je neuspořádaná dvojice klíč/hodnota. K hodnotám se zde přistupuje pomocí klíčů.
Identifikátor každého typu je uvozen zvláštním znakem. Skalární proměnné začínají znakem $, seznamy začínají znakem @ a hashe začínají znakem %. Každý typ proměnné má svůj vlastní jmenný prostor, což v praxi znamená to, že je možné použít stejný název proměnné pro datový typ pole nebo hash. Tato jména se pak budou lišit pouze svým uvozujícím znakem.
${'promena'}=1;
%{'promena1'}=1;
@{'promena1'}=1;
Název proměnné nemusí být vždy implicitně zadáno v době překladu programu, ale může být specifikováno až za jeho běhu. To lze provést tak, že místo názvu proměnné použijeme blok vracející řetězec (=symbolický odkaz) nebo odkaz (=dereference pevného odkazu).
${'a'}=1;
Sub nazev {return 'z'};
${'nazev () }=123456;
$rh = \$a;
$ {$rh} = 654321;
Jména proměnných a odkazy na jejich hodnoty jsou ukládány ve dvou typech paměťových struktur. Ty se nazývají tabulky symbolů a lexikální prostory. Tabulky symbolů jsou vztaženy k určitému balíku, kdežto lexikální prostory se vztahují k bloku. Umístění proměnné je určeno v okamžiku její deklarace. Jestliže proměnnou nadefinujeme pomocí funkce "my", bude se jedna o lokální proměnnou a bude umístěna do lexikálního prostoru. V ostatních případech se bude jednat o globální proměnnou zapsanou do tabulky symbolů.
Autor: Robert Habrman