Řetězce
Práce s řetězci (pokračování)Jsou k dispozici také sekvence, které ovlivňují reprezentaci následujících znaků. Tyto sekvence se označují také jako modifikátory. Jejich přehled spolu s popisem je uveden v následující tabulce.
Modifikátor | Význam |
---|---|
u | Převede následující znak na VELKÉ PÍSMENO |
l | Převede následující znak na malé písmeno |
U | Převede následující znaky na VELKÁ PÍSMENA |
L | Převede následující znaky na malá písmena |
Q | Následující nealfanumerické znaky převede uvede obráceným lomítkem |
E | Ukončuje U, L, Q |
Modifikátor E se vztahuje vždy k nejbližšímu předcházejícímu modifikátoru, tedy neruší platnost všech předchozích. A nyní malý příklad použití modifikátorů.
$x = ' abcDEF ' ;
$y = ' ABCdef' ' ;
$z = ' a + b = 1 ' ;
Print " \u $x \l $y "; //vytiskne ' AbcDEF aBCdef '
Print " \U $x \L $y "; //vytiskne ' ABCDEF abcdef '
Print " \Qz "; //vytiskne ' a\+b=1 '
Print " \Q\U$z \E$z \E$z "; //vytiskne ' A\+B\=1 a\+b\=1 a+b=1 '
Řetězce v apostrofech
Obrácené apostrofy
Uvedeme-li řetězec v obrácených apostrofech, říkáme tím, že daný řetězec není literálem, ale zápisem pro získání výstupu z provedení externího příkazu se jménem uvedeným vevnitř. I v těchto řetězcích probíhá vkládání hodnot proměnných a metaznaků.
Print `\144\151\162`; //to samé jako print `dir`
Vlastní ohraničení řetězce
V Perlu je možné definovat vlastní způsob ohraničení řetězce - jinak než pomocí operátorů "",'', ``. K tomu slouží funkce, jejichž argumentem jsou libovolné znaky, kromě "bílých znaků". V následující tabulce je souhrn možných způsobů ohraničení řetězců a jejich ekvivalenty zapsané pomocí operátorů s nejběžněji používanými znaky pro ohraničení.
Běžně | Jinak | Význam | Vkládání |
---|---|---|---|
' ' | q / / | Literálový řetězec | Ne |
" " | qq / / | Literálový řetězec s vkládáním | Ano |
( ) | qw / / | Seznam řetězců | Ne |
/ / | m / / | Nalezení vzoru | Ano |
s / / / | s / / / | Nahrazení | Ano |
y / / / | tr / / / | Překlad | Ne |
" " | qr / / / | Regulární výraz | Ano |
Hlavní výhodou použití vlastního ohraničovacího symbolu je to, že není třeba před každým symbolem, který by jinak znamenal ukončení řetězce, používat obrácené lomítko. Tím je mimo jiné možné docílit toho, že není nutné před každým apostrofem nebo uvozovkou psát obrácené lomítko, aby bylo jasné, že tímto znakem není řetězec ukončen. Tím se také zvýší čitelnost celého kódu.
V dalším díle se podíváme na víceřádkové řetězce a na konverzi mezi řetězci a čísly. V případě jakýchkoliv dotazů mě kontaktujte na email: habrman@banan.cz.
Autor: Robert Habrman