Skal�rn� prom�nn�


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��kaz
a 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�.


Operace a p�i�azen�

Perl pou��v� v�echny aritmetick� oper�tory b�n� v jazyce C.
$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 = 2
Pro �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�t
P�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 $a
Poznamejme, �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.


Konverze

N�sleduj�c� p��kaz vypisuje slova jablka a hrusky s pou�it�m spojov�n� (concatenation):
$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.


Z�sk�n� pod�et�zce

Pro z�sk�n� ��sti �et�zce pou�ijte funkci substr. Funkce vrac� ��st �et�zce v uveden� d�lce, kter� za��n� od zadan� pozice.

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


Cvi�en�

P��klad 1. P�epi�te n� �vodn� program tak, �e �et�zec napln�te do prom�nn� a pot� obsah prom�nn� vyp�ete dopln�n� o znak konec ��dky. Pou�ijte uvozovky na m�sto oper�toru pro spojov�n� �et�zc�.

Jedno z mo�n�ch spr�vn�ch �e�en�.


Dal�� kapitola | P�edchoz� kapitola kapitola | Obsah