LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> Perl (7) - Funkce III

V tomto díle si doplníme zbývající informace o funkcích a jestě další skutečnosti o práci se skalárními daty.

25.11.2004 13:00 | Josef "jose" Kadlec | Články autora | přečteno 8986×

Začneme takovým, v minulých dílech slibovaným, referenčním přehledem základních funkcí, které využijeme při práci se skalárními daty. Nejprve funkce pro práci s čísly:

abs()

Vrací absolutní hodnotu argumentu (nebo proměnné $_).

atan2()

Vrací arkustangens v intervalu od Pí do Pí.

sin()

Vrací sinus hodnoty argumentu vyjádřený v radiánech.

cos()

Funkce, která vrací kosinus argumentu v radiánech.

exp()

Vrací základ přirozených algoritmů (logaritmus o základu e), který je umocněný na určité číslo.

hex()

Jako argument přijme číslo v hexadecimálním tvaru (tzn. v šestnáctkové číselné soustavě) a vrací číslo v soustavě desítkové.

int()

Tato funkce vrací z čísla část, která je integer - vlastně to znamená, že se z čísla odtrhne desetinná část (i když lze zadat např. zlomek).

$var = 57/7; # v promenne $var je hodnota 8.14285714285714
$var = int 57/7; # v promenne $var je hodnota 8

log()

Vrací logaritmus o základu e argumentu.

oct()

Jako argument přijme číslo v oktalovém tvaru a vrátí číslo ve desítkovém tvaru.

rand()

Vrátí pseudo-náhodné číslo mezi 0 a hodnotou argumentu. Pokud argument není funkci zadán, tak je pseudo-náhodné číslo vybráno z intervalu od 0 (včetně) do 1 (ne včetně).

srand()

Nastaví "náhodnou hodnotu" pro generování pseudo-náhodných čísel funkcí rand() - stručně řečeno aktivuje náhodnost pro funkci rand(), která by jinak generovala pořád ta samá čísla. Pokud není zadán argument, použije se jako argument funkce time().

sqrt()

Vrací odmocninu z argumentu - argument by neměl být záporný.

A nyní přikročíme k funkcím, které využijeme při práci s textovými řetězci.

chop()

Funkce odřízne ze zadaného řetězce znak konce řádku a vrátí řetězec bez těchto znaků.

chomp()

Odřízne znak nového řádku pouze z konce tohoto řetězce.

chr()

Vrací znak vyjádřený určitým číslem v tabulce ASCII.

crypt()

Zašifruje řetězec podle unixové funkce crypt() (man 3 crypt). Jako první argument se zadává řetězec k zašifrování a jako druhý parametr sůl, podle které se řetězec zašifruje.

lc()

Převede všechna velká písmena na malá ze zadaného řetězce.

uc()

Převede všechna malá písmena na velká ze zadaného řetězce.

lcfirst()

Vrací řetězec, kde je zmenšený pouze první znak.

ucfirst

Vrací řetězec, kde je zvětšený pouze první znak.

lenght()

Vrátí délku řetězce v bajtech.

ord()

Funkce vrátí číselnou hodnotu podle ASCII tabulky prvního znaku v zadaném řetězci.

substr()

Vrací jakýsi podřetězec ze zadaného řetězce jakožto prvního argumentu (pozn. podřetězec se může rovnat řetězci asi jako podprostory v algebře). Druhý argument je offset, na jakém znaku řetězce bude podřetězec začínat. Pokud je offset záporný, počítáme začínající znak od konce řetězce. A posledním argumentem je délka podřetězce. Pokud tento argument chybí, tak podřetězec bude obsahovat znaky od offsetu do konce řetězce.

print substr(JosefKadlec, 0, 5); # vypíše řetězec "Josef"
print substr(JosefKadlec, -6, 6); # vypíše řetězec "Kadlec"
print substr(JosefKadlec, -6); # vypíše řetězec "Kadlec"

printf()

Vypíše zformátovaný řetězec do tzv. filehandelu (STDOUT, STDIN, apod.). Pokud tento parametr není zadán, tak se řetězec implicitně vypíše na STDOUT. Používá se spíše ve speciálních případech (většinou pro formátování čísel), ale zase ji nelze použít všude a v těchto případech je potřeba sáhnout po funkci print() (kterou ani v tomto referenčním přehledu neuvádím). Takže pokud budeme chtít např. vytisknout na stadnardní výstup proměnnou $var zaokrouhlenou (opravdu zaokrouhlenou - tzn. že nejsou pouze odříznutá příslušná desetinná místa) hodnotu na 3 desetinná místa, tak bychom to provedli takto:

printf("%.3f", $var);

Pokud bychom například chtěli úplně odříznout z proměnné $var desetinnou část, vypadalo by to takto:

printf("%d", $var);

Obecný zápis formátu, který funkce printf() (stejně tak sprintf()) přijímá, vypadá takto %x.yz, kde x a y jsou nepovinné parametry. Parametr x udává počet znaků, které by hodnota proměnné ve výsledném řetězci měla obsahovat. Parametr y pak udává počet desetinných míst. Nakonec parametr udává typ hodnoty - výčet možných hodnot představuje následující seznam.

c - znak
d - celé číslo v desitkové soustavě
e - exponenciální formát desetinných čísel
f - klasický (pevný) formát desetinných čísel
g - kompaktní formát desetinných čísel
ld - dlouhé celé číslo v desítkové soustavě
lo - dlouhé celé číslo v osmičkové soustavě
lx - dlouhé celé číslo v šestnáctkové soustavě
lu - kladné dlouhé celé číslo v desítkové soustavě
o - šestnáctkové celé číslo
s - řetězec
u - kladné číslo v desítkové soustavě
x - celé číslo v šestnáctkové soustavě
X - celé číslo v šestnáctkové soustavě s velkými písmeny

Jsou to vlastně formátovací kódy převzaté z jazyka C. Pokud byste potřebovali některé další informace o těchto kódech, najdete je v manuálové stránce perfunc (man perlfunc).

Samozřejmě lze s jedním voláním funkce printf() tisknout i více proměnných - ukáži na příkladě:

printf("Prvni hodnota: %d a druha hodnota: %d", $var1, $var2);

sprintf()

Funkce vrací formátovaný řetězec podle konvence funkce printf(), takže se hodí spíše pro vkládání zformátovaných proměnných do jiných výrazů.

V závěru si doplníme nějaké informace k operátorům. Nezmínili jsme totiž ještě velmi důležité logické (nebo také booleanovské) operátory, které své operandy vyhodnocují podle logických pravidel. Tyto operátory známe prakticky tři a to AND, OR a NOT a jejich znakové ekvivalenty && pro AND, || pro OR a ! pro NOT. Platí tedy, že:

x AND y vrací hodnotu TRUE v případě, že obě hodnoty jsou vyhodnoceny jako TRUE.
x OR y vrací hodnotu TRUE v případě, že alespoň jedna hodnota je vyhodnocena jako TRUE.
NOT x vrací TRUE jen v případě, že hodnota x je vyhodnocena jako FALSE a naopak. <\p>

Dále existují tzv. bitové operátory <<, >>, &, | a logická bitová funkce XOR (xor a ^), které se však obecně příliš nepoužívají. Bližší informace o nich naleznete v manuálové stránce perlop - man perlop.

Verze pro tisk

pridej.cz

 

DISKUZE

Prilis zdlouhave a nicnerikajici 26.11.2004 09:38 o.k.
L Re: Prilis zdlouhave a nicnerikajici 28.11.2004 17:11 Josef "jose" Kadlec
pokracovanie serialu ... 27.11.2004 22:24 oron
  L Re: pokracovanie serialu ... 28.11.2004 17:12 Josef "jose" Kadlec




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

15.1.2018 0:51 /František Kučera

První letošní pražský sraz se koná již tento čtvrtek 18. ledna od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Vítáni jsou všichni příznivci svobodného softwaru a hardwaru, ESP32, DIY, CNC, SDR nebo dobrého piva. Prvních deset účastníků srazu obdrží samolepku There Is No Cloud… just other people's computers. od Free Software Foundation.


Přidat komentář

14.11.2017 16:56 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt – tradičně první čtvrtek před třetím pátkem v měsíci: 16. listopadu od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).
Přidat komentář

12.11.2017 11:06 /Redakce Linuxsoft.cz
PR: 4. ročník odborné IT konference na téma Datová centra pro business proběhne již ve čtvrtek 23. listopadu 2017 v konferenčním centru Vavruška, v paláci Charitas, Karlovo náměstí 5, Praha 2 (u metra Karlovo náměstí) od 9:00. Konference o návrhu, budování, správě a efektivním využívání datových center nabídne odpovědi na aktuální a často řešené otázky, např Jaké jsou aktuální trendy v oblasti datových center a jak je využít pro vlastní prospěch? Jak zajistit pro firmu či jinou organizaci odpovídající služby datových center? Podle jakých kritérií vybrat dodavatele služeb? Jak volit součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně spravovat datové centrum? Jak eliminovat možná rizika? apod.
Přidat komentář

13.9.2017 8:00 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt – tentokrát netradičně v pondělí: 18. září od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).
Přidat komentář

3.9.2017 20:45 /Redakce Linuxsoft.cz
PR: Dne 21. září 2017 proběhne v Praze konference "Mobilní řešení pro business". Hlavní tématy konference budou: nejnovější trendy v oblasti mobilních řešení pro firmy, efektivní využití mobilních zařízení, bezpečnostní rizika a řešení pro jejich omezení, správa mobilních zařízení ve firmách a další.
Přidat komentář

15.5.2017 23:50 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 18. května od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).
Přidat komentář

12.5.2017 16:42 /Honza Javorek
PyCon CZ, česká konference o programovacím jazyce Python, se po dvou úspěšných ročnících v Brně bude letos konat v Praze, a to 8. až 10. června. Na konferenci letos zavítá např. i Armin Ronacher, známý především jako autor frameworku Flask, šablon Jinja2/Twig, a dalších projektů. Těšit se můžete na přednášky o datové analytice, tvorbě webu, testování, tvorbě API, učení a mentorování programování, přednášky o rozvoji komunity, o použití Pythonu ve vědě nebo k ovládání nejrůznějších zařízení (MicroPython). Na vlastní prsty si můžete na workshopech vyzkoušet postavit Pythonem ovládaného robota, naučit se učit šestileté děti programovat, efektivně testovat nebo si v Pythonu pohrát s kartografickým materiálem. Kupujte lístky, dokud jsou.
Přidat komentář

2.5.2017 9:20 /Eva Rázgová
Putovní konference československé Drupal komunity "DrupalCamp Československo" se tentokrát koná 27. 5.2017 na VUT FIT v Brně. Můžete načerpat a vyměnit si zkušenosti z oblasti Drupalu 7 a 8, UX, SEO, managementu týmového vývoje, využití Dockeru pro Drupal a dalších. Vítáni jsou nováčci i experti. Akci pořádají Slovenská Drupal Asociácia a česká Asociace pro Drupal. Registrace na webu .
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

16.1.2018 1:08 / Ivan Pittner
verejna ip od o2 ubuntu

15.1.2018 17:26 / Mira Harvalik
Re: Jak udělat HTML/Javascript swiping gallery do mobilu?

30.12.2017 20:16 / Michal Knoll
odmocnina

31.8.2017 12:11 / Jaromir Obr
Re: ukůládání dat ze souboru

30.7.2017 11:12 / Jaromir Obr
Národní znaky

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2018) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze