Podmínkový operátor
Tento operátor pracuje stejně jako v jazyce C++. Je-li výraz před ? pravdivý, je hodnota ternárního podmínkového operátoru výrazem před :, jinak je hodnotou operátoru hodnota za :. Jedná se v podstatě o konstrukci jestliže-pak-jinak (if-then-else). První z operandů (podmínka) je vždy vyhodnocován ve skalárním kontextu, ostatní operandy podle toho, jaký kontext na jejich místě vytvoříme.
$max = $x > $y ? $x : $y;
// do proměnné $max se uloží větší z čísel $x a $y
Operátor přiřazení
Operátor přiřazení očekává na levé straně něco, co označujeme jako l-hodnota. Je to místo v paměti, kam lze uložit hodnotu. Nejčastěji to bývá proměnná různého typu. L-hodnotou nemůže být např. konstanta, protože do ní není možné nic uložit. Operátor přiřazení můžeme zapsat:
l-hodnota OPERÁTOR= hodnota
l-hodnota = l-hodnota OPERÁTOR hodnota
Priorita všech operátorů je stejná, například * = nemá větší prioritu než +=, i když samotné krát má větší prioritu než plus. Výsledkem výrazu s přiřazením je hodnota proměnné, kam jsme provedli přiřazení. Je to opět l-hodnota, do níž je možno provést další přiřazení. Je tedy možno provést následující operace:
$x = $y = $z = 1
// nastaví všechny tři proměnné na hodnotu 1
(($x = $y) - $z) = 1;
// v proměnné $x bude 1, v $y a $z zůstanou původní hodnoty
chop($radek - <>);
// do proměnné $radek se načte ze vstupu řádek,
Operátor čárka
Chování operátoru čárka závisí na kontextu, v jakém je operátor použit. Ve skalár¬ním kontextu vyhodnotí levý operand, jeho hodnotu zapomene, vyhodnotí výraz na pravé straně a jeho hodnotu vrátí. V seznamovém kontextu funguje čárka jako oddělovač prvku seznamu. Synonymem pro čárku je symbol =>, který se používá především u hashových literálů. Slovo nalevo od tohoto operátoru je interpretováno jako řetězec.
$x = (1, 2);
// Skalární kontext - v $x je hodnota 2.
@pole - (1, 2) ;
// Seznamový kontext, @pole obsahuje dva prvky.
A to by bylo pro dnešek všechno. V dalším díle se podíváme na regulární výrazy v jazyce Perl. V případě jakýchkoliv dotazů mě kontaktujte na email: habrman@banan.cz.
Autor: Robert Habrman