Pou₧itφ knihoven Perlu
Knihovna je textov² soubor obsahujφcφ jednu nebo n∞kolik p°ipraven²ch procedur. Tyto procedury je mo₧no pou₧φt v Perl scriptu. Knihovny jsou ulo₧eny v urΦenΘm adresß°i, kde je interpret Perlu hledß. Adresß° je definovßn jednφm z prvk∙ pole @INC. Pole @INC je p°eddefinovanß prom∞nnß, kterß obsahuje seznam adresß°∙, kterΘ interpret Perlu prohledßvß.
Perl pokud je sprßvn∞ nainstalovßn obsahuje °adu procedur, dalÜφ si m∙₧e u₧ivatel vytvo°it.
Chceme-li volat n∞kterou z knihovnφch procedur ve svΘm scriptu musφme zdrojov² text knihovny zahrnout do naÜeho scriptu p°φkazem require.
P°φklad pou₧itφ knihovny ctime.pl:
require "ctime.pl";
$datum = &ctime(time);
print "datum: $datum\n";
P°φkaz require zaΦlenφ do perlovΘho scriptu sekvenci p°φkaz∙ procedury ulo₧enΘ v odd∞lenΘm souboru a tuto sekvenci provede. JmΘno souboru se uvßdφ jako parametr p°φkazu.
Do jednoho scriptu je mo₧nΘ zaΦlenit n∞kolik odd∞len²ch soubor∙, ale ka₧d² soubor lze zaΦlenit pouze jednou. Pro ka₧d² soubor pou₧ijeme vlastnφ p°φkaz require.
VÜechny standardnφ knihovny, kterΘ jsou souΦßstφ perlu konΦφ °ßdkou
1;
Tj. vracφ v²sledkov² k≤d 1 - hodnotu true. M∙₧ete si vytvo°it svΘ vlastnφ knihovny a umφstit je do standardn∞ prohledßvanΘho adresß°e. Tyto novΘ knihovny by vÜak m∞ly vracet nenulov² v²sledkov² k≤d. V p°φpad∞, ₧e se nenajde vklßdan² soubor nebo vlo₧en² soubor vracφ nulov² v²sledek konΦφ p°φkaz require chybou.
Existuje a je ke sta₧enφ knihovna cgi-lib.pl, kterß je dnes de facto standardnφ knihovnou pro vytvß°enφ CGI script∙ v jazyce Perl. Po sta₧enφ souboru s cgi-lib.pl.txt jej staΦφ p°ejmenovat na cgi-lib.pl a ulo₧it do adresß°e s ostatnφmi knihovnami. DalÜφ informace o knihovn∞ najdete na http://cgi-lib.stanford.edu/cgi-lib/. Pomocφ tΘto knihovny je tvorba CGI script∙ jednoduÜÜφ. Knihovna obsahuje procedury:
- ReadParse - procedura Φte data poslanß metodou GET nebo POST, konvertuje je a uklßdß do asociativnφho pole %in (klφΦ/hodnota). VφcenßsobnΘ mo₧nosti odd∞luje znaky /0. Procedura vracφ hodnotu >0 pokud v dotazu byla p°edßna n∞jakß data, hodnotu <0 pokud v dotazu nep°iÜla ₧ßdnß data.
- PrintHeader - tiskne hlaviΦku Content-type: text/html a prßzdn² °ßdek.
- HtmlTop - tiskne ·vodnφ p°φkazy HTML dokumentu a hlaviΦku H1. Titul dokumentu a text hlaviΦky H1 se zadßvß jako parametr p°i volßnφ procedury.
- HtmlBot - Tiskne koncovΘ p°φkazy HTML dokumentu.
- SplitParam - Rozd∞luji parametr o vφce hodnotßch do seznamu.
- MethGet - vracφ true pokud je pou₧itß metoda GET
- MethPost - vracφ true pokud je pou₧itß metoda POST
- MyBaseUrl - vracφ zßkladnφ URL pro script bez dopl≥kov²ch informacφ a vstupnφho °et∞zce.
- MyFullUrl - vracφ zßkladnφ URL pro script s dopl≥kov²mi informacemi a vstupnφm °et∞zcem.
- CgiError - tiskne chybovou zprßvu i s hlaviΦkou. Prvnφ parametr je titul, dalÜφ parametry jsou jednotlivΘ odstavce t∞la chybovΘ zprßvy.
- CgiDie - identickΘ s CgiError, navφc vypφÜe Φφslo °ßdku s chybou
- PrintVariables - vracφ formßtovanΘ prom∞nnΘ.
- PrintEnv - vracφ formßtovanΘ vÜechny prom∞nnΘ prost°edφ.
Opis knihovny cgi-lib.pl je p°ilo₧en k textu.Knihovna je ke sta₧enφ na http://cgi-lib.stanford.edu/cgi-lib/2.14/cgi-lib.pl.txt
P°φklad pou₧itφ knihovny cgi-lib.pl:
#!/usr/local/bin/perlrequire "cgi-lib.pl";
# nacteni promennych z formulare
&ReadParse(*input);
# tisk hlavicky
print &PrintHeader;
print &HtmlTop ("Vystup ze scriptu");
# text je ve formulari pole typu textarea
($text = $input{'text'}) =~ s/\n/\n
/g;
# nahradi znak konec radku prikazem
print < $text
ENDOFTEXT
# opis promennych
print "
Opis promennych, ktere jste zadal ...";
print &PrintVariables(*input);
# zaver html stranky
print &HtmlBot;
}
DalÜφ kapitola |
P°edchozφ kapitola |
Obsah