Skalarni promenne


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`;             # prikaz
a 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.


Operace a prirazeni

Perl pouziva vsechny aritmeticke operatory bezne v jazyce C.
$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 = 2
Pro retezce ma Perl mezi jinymi operatory
$a = $b . $c;	# spoji $b a $c
$a = $b x $c;	#  opakuje retezec $b $c krat
Prirazeni hodnoty
$a = $b;	# priradi $b do $a
$a += $b;	# pricte $b do $a
$a -= $b;	# odecte $b od $a
$a .= $b;	# doplni $b k $a
Poznamejme, 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.


Konverze

Nasledujici prikaz vypisuje slova jablka a hrusky s pouzitim spojovani (concatenation):
$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.


Ziskani podretezce

Pro ziskani casti retezce pouzijte funkci substr. Funkce vraci cast retezce v uvedene delce, ktery zacina od zadane pozice.

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


Cviceni

Priklad 1. Prepiste nas uvodni program tak, ze retezec naplnite do promenne a pote obsah promenne vypisete doplneny o znak konec radky. Pouzijte uvozovky na misto operatoru pro spojovani retezcu.

Jedno z moznych spravnych reseni.


Dalsi kapitola | Predchozi kapitola kapitola | Obsah