Operátor šipka
Jedno z uplatnění má tento operátor při provádění dereference odkazu. Na pravé straně se nachází výraz v hranatých, složených nebo kulatých závorkách a na levé straně tohoto operátoru musí být výraz, jehož výsledkem je odkaz. Odkaz musí být toho typu, jakého typu provádíme dereferenci. Znamená to, že když provádíme dereferenci prvku pole (na pravé straně je výraz v hranatých závorkách), musí být nalevo odkaz na pole apod.
$odkaz_na_pole->[2];
// Dereference prvku pole
$odkaz_na_hash ->{klic};
// Dereference prvku hashe
$odkaz_na_podprogram->(1,2,3);
// Volání odkazu podprogramu
Další možností využití tohoto operátoru je při volání metod objektů. V tomto případě se nalevo nachází objekt nebo název třídy a napravo jméno metody.
$objekt->metoda(@seznam);
// volání metody objektu
Trida->metoda;
// Volání metody třídy
Operátor autoinkrementu a autodeinkrementu
Je-li tento operátor použit ve výrazu jako prefix, dochází k inkrementaci (dekremen¬taci) hodnoty proměnné ještě před vrácením její hodnoty, je-li uveden jako postfix, dochází k inkrementaci (dekrementaci) hodnoty proměnné po vrácení hodnot pro¬měnné.
$x = 1;
Print ++$x;
// Nejprve zvýší hosnotu $x na 2, vytiskne 2
Print $x--;
// Vytiskne 2, poté sníží hodnotu $x na 1
Použijeme-li jako operand autoinkrementu výraz, který není číslo a obsahuje pouze písmena následovaná žádným nebo několika číslicemi, probíhá zvyšování znaku řetězce v rámci rozsahu jednotlivých typů znaků (tzn. malá písmena v rozsahu ' a ' .. ' z ' , velká písmena v rozsahu ' A' .. ' Z ' a číslice v rozsahu 0 .. 9).
$x = ‘a‘;
For (1..1000){
Print $x++;
}
// Vytiskne ’a, b, c….aa,ab,…aaa, aab, aac,…’
$x = ‘XY‘;
For (1..1000){
Print $x++;
}
// Vytiskne ’XY, XZ, ..ZX, ZY,…AAA, AAB’
$x = ‘K2‘;
For (1..1000){
Print $x++;
}
// Vytiskne ’K2, K3, K4,…L0, L1, L2,…AA0, AA1, …’
A to by bylo pro dnešek všechno. V dalším díle se podíváme na umocňování a na ideografické unární operátory. V případě jakýchkoliv dotazů mě kontaktujte na email: habrman@banan.cz.
Autor: Robert Habrman