Zmienne są jednym z ważniejszych elementów dowolnego języka programowania. Są zarówno w Perlu, C jak i w skryptach powłoki. Zmienna to obszar pamięci przechowujący jakieś dane. O rodzaju i sposobie prezentacji tych danych decyduje typ zmiennej.
Niezależnie od tego zmienne można też pogrupować w inny sposób:
- Zmienna lokalna to zmienna widoczna tylko w obrębie danej procedury lub bloku, tworzona w momencie inicjowania bloku i niszczona w momencie kończenia bloku. Kolejne, rekurencyjne wywołanie tej samej procedury tworzy na stosie nową instancję zmiennej.
- Zmienna globalna to zmienna widoczna w obrębie całego programu