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