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