Nejjednodussi promenna v Perlu je skalarni promenna. Skalarni promenna muze obsahovat retezec nebo cislo.Typ promenne je dan jejim obsahem. Promenna se nedefinuje predem, ale vznika pri prvnim pouziti.
Jmeno promenne je retezec zacinajici znakem $.
Priklad:
$priorita = 9;priradi skalarni promenne $priorita hodnotu 9, ale stejne promenne muzete pote priradit retezec:
$priorita = 'vysoka';Perl akceptuje cisla a retezce takto:
$pocet = 10; # integer $pi = 3.14159; # cislo s deset. carkou $num = 6.02e23; # cislo ve vedeckem formatu $barva = 'cervena'; # retezec $veta = "$jmeno je doma"; # retezec s dosazenim $prikaz = `pwd`; # prikaza umi tyto promenne pouzit v operacich.
Jmeno promenne muze byt tvoreno cislicemi, pismeny a podtrzitkem, ale nesmi zacinat cislici. V Perlu exituje rada specialnich promennych, ktere maji vyhrazene jmeno. Jedna z nejcasteji pouzivanych specialnich promennych je $_. Tyto specialni promenne uvedeme pozdeji. Perl je case sensitive,to znamena, ze $a a $A jsou dve ruzne promenne.
$a = 1 + 2; # soucet 1 a 2 ulozi do $a $a = 3 - 4; # odecte 4 od 3 a vysledek ulozi do $a $a = 5 * 6; # vynasobi 5 krat 6 $a = 7 / 8; # deli 7 : 8 vysledek 0.875 ulozi do $a $a = 9 ** 10; # 9 umocni na 10 $a = 5 % 2; # zbytek po deleni 5 : 2 (modulo deleni) ++$a; # zvysi $a a vrati hodnotu, napr. pokud $a=1; $b=++$a; # pak $b = 2, $a = 2 $a++; # vrati hodnotu $a a pak ji zvysi, napr. pokud $a = 1; $b = $a++; # pak $b = 1, $a = 2 --$a; # snizi hodnotu $a a vrati hodnotu, napr. pokud $a = 3; $b = --$a; # pak $b = 2, $a = 2 $a--; # vrati hodnotu $a a pak ji snizi, , napr. pokud $a = 3; $b = $a--; # pak $b = 3, $a = 2Pro retezce ma Perl mezi jinymi operatory
$a = $b . $c; # spoji $b a $c $a = $b x $c; # opakuje retezec $b $c kratPrirazeni hodnoty
$a = $b; # priradi $b do $a $a += $b; # pricte $b do $a $a -= $b; # odecte $b od $a $a .= $b; # doplni $b k $aPoznamejme, ze kdyz Perl provadi prirazeni $a = $b, udela nejprve kopii $b a pak ji priradi do $a. Proto pri dalsi zmene $b se tato zmena neprojevi na $a.
Dalsi operatory najdete ve skladacce.
$a = 'jablka'; $b = 'hrusky'; print $a.' a '.$b;Ale radek
print '$a a $b';vypise znaky $a a $b a to neni zadouci (jmena promennych nejsou nahrazeny hodnotami). Misto apostrofu muzeme pouzit uvozovky:
print "$a and $b";Uvozovky zajisti konverzi libovolneho retezce, vcetne nahrazeni jmena promenne jeji hodnotou. To je v nasem prikladu zadouci. Dalsi znaky, na ktere se uplatni konverze jsou specialni znaky jako konec radky nebo tabelator. Znak \n je novy radek a \t je tabelator. Dalsi specialni znaky jsou uvedeny ve skladacce.
Priklad:
Uvedena sekvence prikazu vytiskne cast retezce z promenne $a, ktery zacina od pozice 5 (pozice jsou cislovane od 0) a je dlouhy 4 znaky.
$a = "Jana Novotna"; $cast = substr($a,5,4); print $cast;Sekvence tiskne retezec:
Novo
Jedno z moznych spravnych reseni.