Perl, Operátory (21.díl)

Napsal O webu (») 15. 4. 2008 v kategorii Programování, přečteno: 772×
obrazky/logo_perl.jpg

Zpracovávání řetězcových termů (pokračování)

V minulém článku, na který bych nyní chtěl navázat, jsme se zabývali způsoby interpretace termů podle toho, jaké jsou použity ohraničovací symboly (jednoznakový symbol, závorky).


Pro termy, které mají tři ohraničovací symboly (s///, tr///, y///) se vyhledávání konce termu provádí dvakrát. U řetězců s víceznakovým ohraničovacím symbolem (víceřádkové řetězce "tvořené pomocí konstrukce <

Dalším krokem ve zpracování řetězce je odstranění všech obrácených lomítek, která se v řetězci vyskytují před ohraničovacími symboly.



Aaa\/bbb\\ccc

Odstraní se pouze první zpětné lomítko




Nyní provádí interpret interpolaci podle toho, jako operátor a jaký ohraničovací symbol byl použit.


1. Řetězce ohraničené pomoci ' ', q//


Neprobíhá žadná interpolace.


2. Řetězce ohraničené pomocí << ' KONEC ', m' ' , s ' ' ' , tr ///, y ///


U těchto operátoru s uvedenými ohraničovacími symboly probíhá pouze na¬hrazení dvojice obrácených lomítek jedním obráceným lomítkem.


3. Řetězce ohraničené pomocí " ", `` , qq // , qx //,


Modifikátory l, L, u, U, Q jsou nahrazeny voláním funkcí Perlu. Návratové hodnoty těchto funkcí jsou ke zbytku řetězce připojeny pomocí operátoru spojení řetězců ( . ).



"aaa\Uxxx\Eaaa\Q$Prom."

#je nahrazeno jako

"aaa".uc("xxx")."aaa".quotemeta($prom)




Hodnota může být také vložena do řetězce jako prvek pole, hashe či pomocí dereference.



@pole = (1,2,3,4,5);

"xx $pole[2] xx";

//hodnota ‘xx 3 xx‘

"xx $pole[3-4] xx";

//hodnota ‘xx 5 xx‘

sub ind { return 2};

print "xx $pole[ind] xx";

//hodnota ‘xx 3 xx‘

$rhash = {a => 1, b => 2};
“ xx $rhash -> {a} xx “;

//hodnota ‘xx 1 xx‘




Rozdíl mezi uvedením takové hodnoty v řetězci a mimo řetězec je v tom, že mimo řetězec může být mezi jménem proměnné a např. hranatými závorkami či šipkou libovolný počet mezer. Pokud se tyto mezery nacházejí uvnitř řetězce, nejsou tyto části považovány za jeden celek.


A to by bylo pro dnešek všechno. V dalším díle se podíváme na operátor <>. V případě jakýchkoliv dotazů mě kontaktujte na email: habrman@banan.cz.


Autor: Robert Habrman
Štítky: Perl
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel devět a čtyři