Speciální proměnné

Následující proměnné jsou globální a je možné udělat jejich lokalizaci v procedurách:
$_ implicitní vstup a implicitně prohledávaná proměnná.
$. aktuální číslo řádky posledního souboru, který byl čtený.
$/ oddělovač vstupních záznamů, implicitně znak nový řádek. Může být i víceznakový.
$, oddělovač výstupních polí pro příkaz print.
$" oddělovač prvků pole při spojování do řetězce.
$\ oddělovač výstupních vět pro příkaz print.
$# výstupní formát pro tisk čísel. Počáteční hodnota je "%.20g".
$* nastaveno na 1 pro porovnávání víceřádkového řetězce, nastaveno na 0 pokud je řetězec jeden řádek. Implicitní hodnota je 0.
$? stav vrácený posledním `příkazem`, příkazem system nebo uzavřením pipe.
$] verze perlu (zobrazovaná perl -v).
$[ index prvního prvku pole a prvního znaku v podřetězci. Implicitně je 0.
$; oddělovač subscriptů pro emulaci vícerozměrných polí. Implicitně je "\034".
$! Při použití v numerickém kontextu obsahuje aktuální hodnotu errno. Při použití v kontextu řetězce obsahuje chybu.
$@ chybová zpráva od posledního eval nebo do příkazu.
$: Znaky, po kterých je možné přerušit víceřádkové pole ve formátu.
$0 jméno souboru, ve kterém je uložen spuštěný script.
$$ číslo procesu perlovského scriptu. Měněno příkazem fork u potomků.
$< real uid procesu.
$>efektive uid procesu.
$( real gid procesu.
$) efektive gid procesu.
$^D volby debugeru předané použitím -D.
$^F nejvyšší systémový file descriptor, obvykle 2.
$^P interní volby debugeru.
$^T čas kdy byl spuštěn script (formát jako time). Hodnota je používaná v operátorech souborů "-M","-A" a "-C".
$^W aktuální hodnota přepínače pro varovná hlášení
$^XJméno interpretu perlu, kterým je skript prováděn.
Následující proměnné závisí na kontextu a nemusí být lokalizovány:
$% aktuální číslo stránky na aktuálním výstupu.
$= délka stránky na aktuálním výstupu. Implicitně 60 řádek.
$-počet řádek zbývajících na stránce.
$~jméno aktuálního formátu.
$^ jméno aktuální formátu pro záhlaví.
$| pokud je nastaveno na nenulovou hodnotu, způsobí flush po každém příkazu write nebo print na aktuální výstup. (Výhodné při výstupu přes pipe). Implicitně je 0.
$ARGV jméno právě čteného souboru při čtení z <>
Následující proměnné jsou vždy lokální pro aktuální blok:
$& vyhledávaný řetězec.
$`řetězec, který předchází vyhledávanému řetězci.
$' řetězec, který následuje za vyhledávaným řetězcem.
$+poslední závorka z vyhledávání.
$1...$9 závorky z posledního vyhledávání. $10... je naplněno, pokud je použito deset závorek.

Speciální pole

@ARGV obsahuje parametry příkazového řádku scriptu (nezahrnuje jméno scriptu).
@INC obsahuje seznam adresářů, ve kterých jsou vyhledávány perlovské scripty použité v příkazech do JMENOSOUBORU a require.
@_ pole parametrů procedury. Také jej používá split funkce pokud není použita v kontextu pole.
%ENV Obsahuje aktuální obsah proměnných prostředí.
%INC seznam souborů, které byly připojeny příkazem require nebo do.
%SIG používá se pro nastavení ošetření různých signálů.