Nejjednodušší proměnná v Perlu je skalární proměnná. Skalární proměnná může obsahovat řetězec nebo číslo.Typ proměnné je dán jejím obsahem. Proměnná se nedefinuje předem, ale vzniká při prvním použití.
Jméno proměnné je řetězec začínající znakem $.
Příklad:
$priorita = 9;přiřadí skalární proměnné $priorita hodnotu 9, ale stejné proměnné můžete poté přiřadit řetězec:
$priorita = 'vysoka';Perl akceptuje čísla a řetězce takto:
$pocet = 10; # integer $pi = 3.14159; # číslo s deset. čárkou $num = 6.02e23; # číslo ve vědeckém formátu $barva = 'cervena'; # řetězec $veta = "$jmeno je doma"; # řetězec s dosazením $prikaz = `pwd`; # příkaza umí tyto proměnné použít v operacích.
Jméno proměnné může být tvořeno číslicemi, písmeny a podtržítkem, ale nesmí začínat číslicí. V Perlu exituje řada speciálních proměnných, které mají vyhrazené jméno. Jedna z nejčastěji používaných speciálních proměnných je $_. Tyto speciální proměnné uvedeme později. Perl je case sensitive,to znamená, že $a a $A jsou dvě různé proměnné.
$a = 1 + 2; # součet 1 a 2 uloží do $a $a = 3 - 4; # odečte 4 od 3 a výsledek uloží do $a $a = 5 * 6; # vynásobí 5 krát 6 $a = 7 / 8; # dělí 7 : 8 výsledek 0.875 uloží do $a $a = 9 ** 10; # 9 umocní na 10 $a = 5 % 2; # zbytek po dělení 5 : 2 (modulo dělení) ++$a; # zvýší $a a vrátí hodnotu, např. pokud $a=1; $b=++$a; # pak $b = 2, $a = 2 $a++; # vrátí hodnotu $a a pak ji zvýší, např. pokud $a = 1; $b = $a++; # pak $b = 1, $a = 2 --$a; # sníží hodnotu $a a vrátí hodnotu, např. pokud $a = 3; $b = --$a; # pak $b = 2, $a = 2 $a--; # vrátí hodnotu $a a pak ji sníží, , např. pokud $a = 3; $b = $a--; # pak $b = 3, $a = 2Pro řetězce má Perl mezi jinými operátory
$a = $b . $c; # spojí $b a $c $a = $b x $c; # opakuje řetězec $b $c krátPřiřazení hodnoty
$a = $b; # přiřadí $b do $a $a += $b; # přičte $b do $a $a -= $b; # odečte $b od $a $a .= $b; # doplní $b k $aPoznamejme, že když Perl provádí přiřazení $a = $b, udělá nejprve kopii $b a pak ji přiřadí do $a. Proto při další změně $b se tato změna neprojeví na $a.
Další operátory najdete ve skládačce.
$a = 'jablka'; $b = 'hrusky'; print $a.' a '.$b;Ale řádek
print '$a a $b';vypíše znaky $a a $b a to není žádoucí (jména proměnných nejsou nahrazeny hodnotami). Místo apostrofů můžeme použít uvozovky:
print "$a and $b";Uvozovky zajistí konverzi libovolného řetězce, včetně nahrazení jména proměnné její hodnotou. To je v našem příkladu žádoucí. Další znaky, na které se uplatní konverze jsou speciální znaky jako konec řádky nebo tabelátor. Znak \n je nový řádek a \t je tabelátor. Další speciální znaky jsou uvedeny ve skládačce.
Příklad:
Uvedená sekvence příkazů vytiskne část řetězce z promenné $a, který začíná od pozice 5 (pozice jsou číslované od 0) a je dlouhý 4 znaky.
$a = "Jana Novotna"; $cast = substr($a,5,4); print $cast;Sekvence tiskne řetězec:
Novo
Jedno z možných správných řešení.