Aditivní operátory
Operátory + a - provádějí součet, respektive rozdíl operandů. Ty jsou v případě řetězců nejprve převedeny na číselné hodnoty a teprve pak je požadovaná operace provedena. Oba operandy jsou vyhodnoceny ve skalárním kontextu. Pro spojování řetězců se použije operátor . (tečka).
1+2;
// Vytiskne 3
'abcdef' + '123456';
// Vytiskne 123456, 'abcdef' převedeno na 0
'abc' . '123';
// Vysledek je abc123
Operátor posuvu
Operátory >> a << provedou bitový posun hodnoty operandu na levé straně o počet pozic, zadaný na pravé straně určeným směrem (směrem šipek tvořících operand). Pracuje pouze s celočíselnými argumenty. Výsledky se opět mohou lišit v závislosti na počtu bytů, které jsou vyhrazeny pro uloženi číselných hodnot.
Print 2 << 5;
// Vytiskne 64
Print 32 >> 3;
// Vytiskne 4
Relační operátory
Vzhledem k tomu, že v Perlu není možné rozlišit mezi řetězci a čísly a že probíhají automatické konverze mezi těmito typy hodnot, je nutná existence dvou skupin re¬lačních operátorů operátory pro porovnávání čísel a operátory pracující s řetězci.Operátor pro čísla | Operátor pro řetězce | Význam |
---|---|---|
< | Lt | Menší než |
<= | Le | Menší rovno |
> | Gt | Větší než |
>= | Ge | Větší rovno |
Pomocí operátorů pro porovnávání čísel se porovnává číselná hodnota operandů, řetězcové porovnávání je založeno na porovnávání jednotlivých znaků podle jejich pořadí v ASCII tabulce.
Operátor rovnosti
Podobně jako u relačních operátorů, i v tomto případě existují dvě varianty — ope¬rátory pracující s čísly a operátory pracující s řetězci. Při splnění rovnosti operandů u operátorů rovnosti a v případě nerovnosti u operátorů nerovnosti vracejí tyto ope¬rátory hodnotu 1, jinak vracejí prázdný řetězec. Operátory <=>* a "cmp" vracejí -1, je-li levý operand menší, 0 v případě rovnosti a 1, když je levý operand větší než pravý.Operátor pro čísla | Operátor pro řetězce | Význam |
---|---|---|
= = | Eq | Rovno |
! = | Ne | Nerovno |
< = > | cmp | Porovnání |
A to by bylo pro dnešek všechno. V dalším díle se podíváme na pojmenované unární operátory a operátory testování souboru. V případě jakýchkoliv dotazů mě kontaktujte na email: habrman@banan.cz.
Autor: Robert Habrman