Řetězce
Řetězce jsou chápány jako jeden skalár složené z posloupnosti znaků. Není možné přistupovat ke každému jednotlivému znaku. Minimální délka je nulová, maximální je omezena velikostí dostupné paměti, přičemž aktuální délka se odvíjí podle toho, jak s daty pracujeme. Použitá znaková sada určuje to, kolik bude jeden znak zabírat v paměti. V znakové sadě ASCII je délka jednoho znaku 1 byte. Znaky Unicode mohou zabírat více bytů, UTF8 jeden až šest.Práce s řetězci
Řetězce v uvozovkách podléhají vkládání hodnot proměnných a speciálních sekvencí začínajících obrácenými lomítky. Existují znaky, které ve spojení s obrácenými lomítky získávají unikátní význam - známé jako metaznaky. Velice jednoduchý příklad je v následujícím kódu.
$den = 'pátek';
Print "Dnes je $den\n"; //vypíše text: Dnes je pátek
Jelikož jméno proměnné začíná speciálním symbolem, není potřeba při vkládání její hodnoty do řetězce zvláštní syntaxi. Po nalezení znaku $ je uvozen začátek jména proměnné. Chceme-li ovlivnit způsob vyhledání proměnné při vkládání její hodnoty do řetězce, můžeme použít dvojici znaků { }. Situace je znázorněna v následujícím příkladu.
$a = 3;
$b = 3;
Print "${ x }a$b =, $a*$b"; // vytiskne: 3x3=9
Do řetězců je možné vkládat také hodnoty z proměnných typu pole. V takovémto případě je mezi znaky pole vložen obsah proměnné $" ($LIST_SEPARATOR), jejíž výchozí znak je mezera.
@pole = (1, 2, 3);
Print "Obsah pole je: @pole";
$" = ' + '; /// Změna oddělovače prvků pole
Print "@pole"; /// Vytiskne '1+2+3'
Metaznaky
Kromě hodnot proměnných lze do řetězců vkládat i znaky popsané specifickou sekvencí znaků - označované také jako metaznaky. Jejich souhrn spolu s jejich popisem je v následující tabulce.
Metaznak | Význam |
---|---|
Nový řádek | |
Návrat vozíku | |
Tabulátor | |
f | Nová stránka |
Backspace | |
a | Pípnutí |
e | Znak ESC |
101,012 | Znak s ASCII hodnotou osmičkově |
x61 | Znak s ASCII hodnotou šestnáctkově |
cC | Znak CTRL+C |
x{263a} | Znak v znakové sadě UNICODE |
N{Jmeno} | Znak se zadaným jménem |
Znak |
V dalším díle se podíváme na další možnosti práce s řetězci. V případě jakýchkoliv dotazů mě kontaktujte na email: habrman@banan.cz.
Autor: Robert Habrman