Obsah
Stručný obsah P rvní týden den den den den den den den
1 2 3 4 5 6 7
Z ačínáme Úvod do Periu Pracujeme s řetězci a čísly Další údaje o skalárních datech a operátorech Práce se seznamy a poli Práce s hashi Podmínečné provádění kódu a cykly Několik složitějších příkladů
Druhý týden J deme více do hloubky den den den den den den den
8 9 10 11 12 13 14
T řetí týden den den den den den den den
15 16 17 18 19 20 21
Manipulace se seznamy a řetězci Porovnávání vzorů pomocí regulárních výrazů Další možnosti použití normálních výrazů Tvorba a používání procedur Ladění skriptů Platnost identifikátorů, moduly a import kódu Další dávka rozsáhlejších příkladů
1 3 21 39 55 77 93 117
129 131 151 173 191 217 233 26l
P okročilé funkce jazyka P erl
285
Práce se soubory a I/O Jak použít Perl pro tvorbu skriptů CGI Správa souborů a složek Perl a operační systém Práce s odkazy Drobky kolem talíře Poslední dávka rozsáhlejších příkladů
287 313 339 355 383 417 447
PŘÍLOHY
471 příloha AFunkce Perlu příloha В Přehled modulů jazyka Perl příloha C Instalace Perlu v systému Unix příloha D Instalace Perlu v systému Windows příloha E Instalace Perlu v systému Macintosh Rejstřík
473 503 519 527 531 535
Obsah
P rvní
týden den
1
Z ačínáme
1
Ú vod do P erlu
3
Co je Perl a jaké jsou jeho koreny? ..........................................................................4 Proč byste se měli naučit programovat v Perlu? ......................................................5 Začínáme programovat v Perlu ................................................................................ 7 Příklad: všudypřítomné Ahoj, světe .......................................................................... 8 Další příklad: Ozvěna .............................................................................................. 11 Třetí příklad: Pojídač koláčků................................................................................... 12 Hlubší p o lile d ............................................................................................................ 13 S o u h rn ....................................................................................................................... 14 Otázky a odpovědi ................................................................................................... 14 Seminář .....................................................................................................................16 O d p o v ěd i...................................................................................................................17 den
2
P racu jem e s řetězci a čísly
21
Skalární data a skalární p ro m ěn n é.......................................................................... 21 Vytváření skriptů Perlu ............................................................................................ 26 Aritmetické operátory .............................................................................................. 27 Příklad: Konverze stupňů Fahrenheita na stupně Celsia .......................................28 Operátory pro testování a porovnávání hodnot ....................................................30 Hlubší p o lile d ............................................................................................................ 33 S o u h rn ....................................................................................................................... 35 Otázky a o d p o v ě d i................................................................................................... 35 Seminář .....................................................................................................................36 O d p o v ěd i...................................................................................................................37 den
3
D alší údaje o skalárních datech a operátorech
39
Operátory přirazení...................................................................................................39
Operátory pro inkrementad a dekrem entad........................................................... 40 Spojování a opakování řetězců ............................................................................... 4l Priorita operátorů a asociativita ...............................................................................42 Příklad: jednoduchá statistika................................................................................... 43 Vstup a výstup ..........................................................................................................40 Poznámka o používání fu n k c í................................................................................. 49 Hlubší p o h le d .............................................................................................................. Souhrn ..................................................................................................... 32 Otázky a o d p o v ěd i................................................................................................... 52 Seminář ................................................................................................
32
O dpovědi.................................................................................................................. .. den
4
P ráce se seznamy a p o u
55
Seznamová data a prom ěnné................................................................................... 55 Definice a používání seznamů a p o l í ...................................................................... 56 Příklad: Pokročilejší statistika ................................................................................... 63 Seznamový a skalární k o n te x t................................................................................. <55 Vstup, výstup a seznam y.......................................................................................... 69 Hlubší p o h le d .............................................................................................................. S o u h rn .......................................................................................................
72
Otázky a o d p o v ě d i................................................................................................... 73 Seminář ....................................................................................................... 74 O d p o v ěd i..................................................................................................... den
5
P ráce s hashi
73
77
Hashe kontra seznamy či p o le ................................................................................. 77 Definování a používání h a s h ů ................................................................................. 78 Příklad: Frekvence ve statistickém programu .........................................................83 Další příklad: Abecední seznam jm en ...................................................................... 87 Hlubší p o h le d ............................................................................................................ 88 S o u h rn ....................................................................................................... gg Otázky a o d p o v ě d i................................................................................................... g9
den
6
Seminář .......................................................................................................
g9
O d p o v ěd i..............................................................................................................
90
P odmínečné provádění kódu a cykly
93
Komplexní příkazy a b lo k y ..................................................................................... 94 Podm ínky.................................................................................................................. ..
Cykly w h ile................................................................................................................97 Přiklad: Hádání čísla ..............................................................................................100 Iterace pomocí cyklů for ....................................................................................... 102 Řízení průběhu cyklů ............................................................................................104 Jak použít proměnnou $_ (výchozí proměnná) ................................................. 107 Načítání dat ze souborů pomocí cyklů while a operátoru <> ........................... 107 110 Hlubší p o h le d .................... Souhrn .....................................................................................................................112 Otázky a odpovědi ................................................................................................ 113 Seminář.....................................................................................................................114 O d p o v ě d i................................................................................................................ 114
DEN 7
NĚKOUK SLOŽITĚJŠÍCH PŘÍKLADŮ
117
Statistika s lepším histogramem ............................................................................ 117 Skript pro hláskování č ís e l..................................................................................... 121 Skript pro převod textových souborů do stránek HTML .................................... 123 Souhrn .....................................................................................................................128
D ruhý
týden den
8
J deme
více do hloubky
M anipulace s e seznamy a řetězci
129 131
Řezy polí a hashů ...................................................................................................132 Řazení seznamů ..................................................................................................... 132 Vyhledávání ............................................................................................................134 Příklad: Další jm é n a ................................................................................................ 135 Změna obsahu seznamu ....................................................................................... 139 Další možné operace se seznamy ........................................................................142 Manipulace s řetězci .............................................................................................. 143 Hlubší p o h le d ..........................................................................................................145 Souhrn .....................................................................................................................145 Otázky a odpovědi ................................................................................................ 146 Seminář.....................................................................................................................146 O d p o v ě d i................................................................................................................ 147 den
9
P orovnávání vzorů pom ocí regulárních výrazů
151
Porovnávání vzorů - jak a p r o č .............................................................................152 Operátory a výrazy pro porovnávání vzorů ........................................................ 153 Jednoduché v z o ry ...................................................................................................153
Vzory vyhovující skupinám znaků ........................................................................ 156 Príklad: Optimalizovaný skript pro hláskování čísel............................................. 158 Vyhledání více míst výskytů zn a k ů ........................................................................ I63 Další poznatky o sestavování v z o r ů ......................................................................I65 Další příklad: Počítání ............................................................................................ 1<5<5 Priorita vzo rů........................................................................................................... 167 Hlubší p o h le d .........................................................................................................I67 Souhrn ..................................................................................................................... i t y Otázky a odpovědi ................................................................................................. I 69 Seminář.................................................................................................................... I69 O d p o v ěd i................................................................................................................ 170 den
1 0 D alší možnosti použití normálních výrazů
173
Jak data odpovídající vzoru zkopírovat jinam ...................................................... 173 Používání vzorů pro vyhledávání a nahrazování..................................................177 Další fakta o používání funkce s p l i t ...................................................................... 178 Porovnávání vzorů přes více řádků .............................................. Souhrn voleb a escape sekvencí .......................................................................... 180 Příklad: Extraktor o b rá z k ů ..................................................................................... 181 Hlubší p o h le d .......................................................................................................... I85 Souhrn ..................................................................................................................... 186 Otázky a odpovědi ................................................................................................. I87 Seminář..................................................................................................................... I87 C vičení..................................................................................................................... 188 O d p o v ěd i................................................................................................................. 188 den
11 T vorba a používání procedur
191
Procedury versus fu n k c e ........................................................................................ 191 Jak definovat a volat základní procedury ............................................................. 192 Přiklad: A zase jednou statistiky......... *................................................................. 194 Jak vrátit hodnotu z procedury...............................................................................I96 Lokální proměnné v procedurách .........................................................................197 Prodáváme hodnoty procedurám ...........................................................................199 Procedury a kontext ...............................................................................................201 Další příklad: Statistiky s nab íd k o u ......................................................................... 202 Hlubší p o h le d ...........................................................................................................208 Shrnutí ..................................................................................................................... 210 Otázky a odpovědi ............................................................................
Seminář....................................................................................................................212 O d p o v ě d i................................................................................................................213 den
12 Ladění skriptů
217
Používáme debugger: Jednoduchý p řík lad .......................................................... 218 Spouštění a běh ladicího programu .....................................................................222 Hlubší p o h le d ........................................................................................................ 227 Shrnutí .................................................................................................... 4............. 228 Otázky a odpovědi ................................................................................................229 Seminář.................................................................................................................... 229 O d p o v ě d i................................................................................................................230 den
13 P latnost identifikátorů , moduly a im port kódu
233
Globální proměnné a balíčky................................................................................ 234 Proměnné s lokální platností ................................................................................ 237 Používáme moduly jazyka Perl ............................................................................239 Přiklad: Používáme modul Text::W rap..........................................
247
Používáme moduly z archivu CPÁN..................................................................... 248 Hlubší p o h le d ......................................................................................................... 250 Shrnutí .................................................................................................................... 254 Otázky a odpovědi ................................................................................................255 Seminář.................................................................................................................... 256 O d p o v ě d i................................................................................................................257 den
1 4 D alší dávka rozsáhlejších příkladů
261
Adresář s možností vyhledávání (address.pl)........................................................ 262 Analyzátor souborů protokolu na serveru WWW (w eblog.pl)........................... 271 Shrnutí .................................................................................................................... 283
T řetí
týden den
P okročilé
funkce jazyka
1 5 P ráce se soubory a I/O
P erl
285 287
Vstup, výstup a manipulátory so u b o rů ................................................................. 288 Pnklad: Vyhledávání a ukládání předmětů zpráv ............................................... 293 Testování so u b o rů ...................................................................................................294 Práce se seznamem @ARGV a argumenty skriptu............................................... 296 Další pnklad ............................................................................................................300 Hlubší p o h le d ......................................................................................................... 302
3
O bsah
den
19 P ráce s odkazy
383
Co je to o d k az?.......................................................................................................383 Základy: Stručné o tom, jak používat odkazy ......................................................384 Jak používat odkazy v argumentech a návratových hodnotách procedur.........388 Jiné způsoby užití odkazů .....................................................................................391 Tvoiba vnořených datových struktur pomocí o d k a z ů ........................................ 394 Tvorba datových struktur na základě existujících d a t .............................
400
Přístup к prvkům ve vnořených datových strukturách........................................ 401 Další příklad: Databáze umělců a jejich d ě l ..........................................................403 Hlubší p o h le d .........................................................................................................406 Shrnutí .................................................................................................................... 409 Otázky a odpovědi ................................................................................................ 409 Sem inář.................................................................................................................... 410 Odpovědi ................................................................................................................412 den
2 0 D robky kolem talíře
417
Jednořádkové skripty v jazyku Perl ...............................
. .418
Objektově orientované programování ...........................
. .420
Příklad: Používáme objektově orientované moduly . . . .
. .427
Formáty ............................................................................
. .428
Sokety................................................................................ Soubory POD (Plain Old Documentation) ....................
. .431 ..432
Dynamické vyhodnocování kódu .................................
den
Tvorba mezinárodních skriptů v jazyku P e rl..................
.435
Zabezpečení skriptů ověřováním nedůvěryhodných dat PerlScript............................................................................
.435 .436
Rozšiřování jazyka Perl .................................................
.436
Nové pokroalé funkce v Perlu verze 5-005 ................
.437
Hlubší p o h le d .................................................................
.438
Shrnutí ............................................................................
.438
Otázky a odpovědi ........................................................ Seminář............................................................................
.439 .440
O d p o v ě d i........................................................................
.441
21 P oslední dávka rozsáhlejších příkladů
447
Generátor domovské stránky (m yhom epage.pl)................................................. 448 Správce úkolů v síti WWW (todolist.pl) ...............................................................456 Slimutí .....................................................................................................................468
UDsan
PŘÍLOHY
471
příloha
A
F unkce P erlu
473
Další inform ace....................................................................................................... 473 Funkce jazyka Perl v abecedním p o fa d í............................................................... 474
PŘÍLOHA В
PŘEHLED MODULŮ JAZYKA PERL
503
Direktivy programu (pragm as)............................................................................... 504 Základní moduly jazyka Perl ................................................................................. 505 Moduly pro podporu vývoje ................................................................................. 506 Rozhraní operačního systému ............................................................................... 506 Moduly určené pro systém Macintosh ..................................................................507 Moduly pro přistup к s í t i ........................................................................................ 507 Utility pro práci s datovými typy ...........................................................................510 Moduly pro práci s databází....................................................................................511 Uživatelská rozhraní.................................................................................................512 Moduly pro práci se souborovým systémem ...................................................... 513 Moduly pro zpracování textových řetězců ........................................................... 514 Zpracování přepínačů a argumentů ...................................................................... 514 Internacionalizace a lokalizace............................................................................... 514 Šifrování, ověřování a zabezpečení........................................................................ 515 Moduly pro práci s HTML, HTTP, WWW a C G I.................................................. 515 Archivace a kom prese............................................................................................ 516 Manipulace s obrazem/rastrem............................................................................... 516 Pošta a U senet..........................................................................................................517 Utility pro řízení to k u ...............................................................................................517 Souborové manipulátory a vstup/výstup............................................................... 517 Moduly pro systém Windows ............................................................................... 518 Další m oduly.......................................... 518 příloha
C
I nstalace P erlu v systému U nix
519
Musíte Perl inštalovať ............................................................................................ 519 Jak zfekat Perl ..........................................................................................................520 Rozbalujeme a překládáme P e rl.............................................................................522 Kde jsou další podrobnosti?................................................................................... 526
příloha
D
I nstalace P erlu v systému W indows
527
Stažení jazyka Perl pro W indow s..........................................................................528 Instalujeme Perl pro W indow s.............................................................................. 528 Jak spouštět Perl pro Windows ............................................................................530 Stažení zdrojového k ó d u .......................................................................................530 Kde lze získat další informace?..............................................................................530 příloha
E
I nstalace P erlu v systému Macintosh
531
Stažení balíčku M acPerl......................................................................................... 531 Instalujeme MacPerl................................................................................................533 Spouštíme aplikaci MacPerl .................................................................................. 533 Jak spustit MacPerl z MPW .................................................................................. 533 Jak získat další informace? .....................................................................................534
R ejstřík
535