P E R L

Practical Extraction and Report Language

 

 

Inštalácia a spustenie PERL CGI Príklady Linky

 

PERL: základný prehľad o jazyku

0.    Obsah

 

1.    Premenné

            1.1    Skaláre

                    1.1.1 Operácie a priradenia

            1.2    Polia

            1.3    Hashe

2.    Súbory

3.    Podmienený príkaz a príkazy riadenia

            3.1    Podmienený príkaz if

            3.2    Príkazy riadenia

                    3.2.1    foreach

                    3.2.2    for

                    3.2.3    while a until

                    3.2.4    Príkazy pre prerušenie cyklu

                    3.2.5    Porovnávacie výrazy

4.    Porovnávanie reťazcov

            4.1    Regulárne výrazy

            4.2    Viac o regulárnych výrazoch

5.    Procedúry

            5.1    Lokálne premenné

6.    Formát

            6.1    Definícia formátu

            6.2    Použitie formátu

            6.3    Znaky použité vo vzore

7.    Použitie knižníc

 

 

1.    Premenné

 

Perl pozná 5 druhov premenných: skaláre, polia, hashe, podprogramy a typegloby. Premenné sa v Perli rozoznávajú pomocou špeciálneho znaku, ktorým začínajú:


Znak na začiatku Typ premennej Príklad

$

skalár

napr. $meno

@

pole

napr. @mesiace

%

hash

napr. %dni_v_tyzdni

&

funkcia

napr. &scitaj

*

typeglob

napr. *premenna

 

V Perli premenné môžete ale nemusíte deklarovať. Pomocou direktívy use strict 'vars'; sa dá nastaviť vynútenie deklarovania premenných, kedy použitie nedeklarovanej premennej bude hlásené ako chyba. Toto je výhodné pri väčších projektoch, kedy sa vám ľahko stane, že urobíte preklep v názve premennej a budete dva dni hľadať, v čom je chyba.

 

Premennú nadeklarujete celkom jednoducho pomocou slova my:

 

     my $prem;
     $prem = 45.6;


Ak sa premenná nedeklaruje, vzniká pri jej prvom použití.

up


1.1    Skaláre

 

Skalár je premenná obsahujúca jednotlivú hodnotu, reťazec alebo číslo (prípadne referenciu). Skalárnu premennú spoznáte podľa toho, že začína znakom '$' (dolár). Môžete teda napísať:

 

     $text = "ahoj";
     $cislo = 3;
     $realne = 3.14;


všetky tieto výrazy priradia konštantu do premennej; podobne potom môžete napísať

 

     $retazec = $cislo;


čím priradíte do premennej $retazec hodnotu ktorá bola v premennej $cislo. Perl implicitne konvertuje medzi číslami a reťazcami v skalárnych premenných podľa kontextu, v akom sa použijú. Nasledujúce dva riadky sú úplne ekvivalentné, pretože Perl pri použití číselnej operácie + automaticky prevedie reťazce "3.14" a "4" na čísla:

 

     $x = "3.14" + "4"; 

     print $x;

  $x = 3.14 + 4; 

  print $x;

 

1.1.1    Operácie a priradenia

 

Perl používa všetky aritmetické operátory bežné v jazyku C.

 

     $a = 1 + 2;          
     $a = 3 - 4;         
     $a = 5 * 6;          
     $a = 7 / 8;          
     $a = 9 ** 10;     # 9 na 10.   
     $a = 5 % 2;       # 5 modulo 2                                            
     $a++;          
     $a--; 


Pre reťazce má Perl medzi inými aj operátory:

 

     $a = $b . $c;     # spojí $b a $c
     $a = $b x $c;     # opakuje reťazec $b $c-krát

 

 

Priradenie hodnoty:

 

     $a = $b;          # priradí $b do $a
     $a += $b;         # pričíta $b do $a
     $a -= $b;         # odčíta $b od $a
     $a .= $b;         # doplní $b k $a

 
up
1.2    Polia

Pole funguje v Perli podobne ako v iných programovacích jazykoch, čiže obsahuje skupinu svojich prvkov, na ktoré sa odkazujeme celočíselným indexom. Prvý prvok má index 0.

Tu sú niektoré prípady použitia polí a ich prvkov:

 

    @farby = ("modra", "cervena", "biela");
    @cisla = (23, 42, 69);
    @mixed = ("modra", 42, 1.23); 

 

 

    print $farby[0];              # vypise "modra"
    print $farby[1];              # vypise "cerbena"  

 

Všimnite si, že znak @ sa zmenil na znak $, pretože farby[0], t.j. prvok poľa ja skalárna premenná.

Vhodný spôsob pridávania prvku do poľa je použitie funkcie push:

 

    push(@farby, "zlta");

 

ktorá pridá reťazec "zlta" na koniec poľa farby. Na pridanie 2 alebo viacerých prvkov použijeme napr.:

 

    push(@farby, "zlta", "cierna");
    push(@farby, ("zlta", "cierna"));
    push(@farby, @dalsiefarby);

 

Pole má v Perli dynamickú veľkosť, podľa toho, koľko ste mu dali prvkov. Keď mu vytvoríte prvok s indexom väčším než mal doterajší posledný prvok, pole sa automaticky zväčší na potrebnú veľkosť. Počet prvkov poľa môžete zistiť napr. takto:

 

    $pocet = $#pole+1;

 

Funkcia push vracia posledný prvok nového zoznamu. Teda:

 

    @farby = ("modra", "cervena", "biela");
    @dalsiefarby = ("zlta","cierna");
    $pocet = push(@farby, @dalsiefarby);
    print "Posledny prvok noveho zoznamu je $pocet\n";   # vypise "cierna"

 

Funkcia pop odstráni poslednú položku poľa a vracia hodnotu posledej položky poľa:

 
    $novafarba = pop(@farby);    # teraz $novafarba = "biela"

 

up

 

1.3    Hashe (asociatívne polia)

 

Hash je nesprávny, ale krátky a preto používaný názov pre asociatívne pole. Perl na rozdiel od väčšiny iných jazykov podporuje priamo polia, ktoré sa indexujú reťazcami namiesto čísel. Využitie týchto hashov je prakticky neobmedzené a spoločne s automatickou správou pamäti Perlu dostávame silný prostriedok pre tvorbu zložitejších štruktúr. Hashe môžeme použiť namiesto statických štruktúr známych z jazykov ako C/C++.

    Skutočnosť, že ide o hash vyjadrujeme tým, že pred názov hashu dáme znak percento %.V rámci asociatívnych polí su dôležité 2 pojmy, a to kľúče a hodnoty. Kľúče sú vlastne indexy poľa. Hodnoty sú jeho hodnoty ;) Myslím, že najlepšie bude ukázať používanie hashov v praxi. Takže, zadefinujeme si hash s kľúčmi január, február, ... a hodnotami ktoré znamenajú ich číselné vyjadrenie.

 

    %mesiace = ('januar'=>1,'februar'=>2,'marec'=>3,'april'=>4,'maj'=>5,'jun'=>6,'jul'=>7,
                'august'=>8,'september'=>9,'oktober'=>10,'november'=>11,december=>'12');
 
 
    print "januar je $mesiace{'januar'}. mesiac\n";   # vypise: januar je 1. mesiac
 
    @vybrane = ('maj','jun','jul');
    print "@vybrane su @mesiace{@vybrane} mesiac\n";  # vypise: maj,jun,jul su 5,6,7 mesiac
 
 
    @kluce = keys %mesiace;                      # ziskame zoznam klucov hashu
    @hodnoty = values %mesiace;                  # ziskame vsetky hodnoty hashu
    print "@hodnoty";                            # vypise: 1,10,12,9,2,3,4,5,8,7,6,11
    $prvok = $mesiace{'januar'};                 # ziskame hodnotu pre kluc 'januar'
    ($p1,$p2) = @mesiace{'januar','februar'};    # ziskame naraz viacero hodnot
    @hodnoty = @mesiace{keys %mesiace};          # inak ziskame vsetky hodnoty hashu
    print "@hodnoty";                            # vypise: 1,10,12,9,2,3,4,5,8,7,6,11


Hash môžeme vytvoriť aj vytvorením nejakého jeho prvku:

 

    $dni{'pondelok'} = 'monday';
    $dni{'utorok'} = 'tuesday';
    print keys %dni;                             # vypise: utorokpondelok

 

up

2.    Súbory

 

So súbormi sa v jazyku Perl pracuje pomocou tzv. filehandles. Filehandle - logické meno súboru, je to reťazec písaný veľkými písmenami, napr. SUBOR. Na začiatku uvediem príklad v jazyku Perl, ktorý opíše obsah súboru na obrazovku, t.j. má rovnakú funkciu ako príkaz cat v UNIXe.

 

    #!/usr/local/bin/perl
    #
    # Program otvori subor, precita, vypise obsah suboru na obrazovku a opat subor uzavrie

    $file = 'subor.txt';		# meno suboru je ulozene do premennej
    open(INFO, $file);		        # otvorenie suboru
    @lines = <INFO>;		        # nacitanie obsahu suboru do pola
    close(INFO);			# uzavretie suboru
    print @lines;			# vypis pola

 

V tomto príklade má súbor logické meno INFO. Obsah súboru sa číta jednoducho tak, že sa premennnej priradí logické meno súboru uzavreté v špicatých zátvorkach. Teda celý obsah súboru (všetky riadku súboru) sa načítajú do poľa, a to tak, že každý riadok predstavuje jeden prvok poľa @lines. Treba ešte podotknúť, že riadok sa uloží do prvku poľa aj so znakom konca riadku.

Súbor na vstupe môžme prečítať a vypísať na obrazovku aj prostredníctvom cyklu while:

 

    while ($lines = <INFO>) {
      print $lines; 
    }

 

Funkcia open otvára súbor ako vstupný (t.j. na čítanie). Prvý parameter je filehandle, logické meno súboru. Druhý parameter je meno súboru vrátane cesty. V našom príklade je meno súboru s cestou uložené v premennej $file.

Funkcia close ukončí prácu so súborom. 

Niektoré logické mená súborov sú preddefinované a je možné ich v programe použiť.

 

<STDIN>

štandardný vstup

<STDOUT>

štandardný výstup

<STDERR>

štandardný chybový výstup

<ARGV>

súbory uvedené v príkazovom riadku


Funkcia open môže otvárať súbor ako výstupný (t.j. pre zápis). Výstupný súbor sa otvorí pridaním znaku > pred meno súboru. Pomocou tohto znaku sa vytvorí nový súbor. V prípade, že už existuje súbor s týmto menom, tak existujúci súbor bude prepísaný. Ak chceme otvoriť už exisujúci súbor a rozšíriť ho, tak pred meno súboru dáme znaky >>:

 

    open(INFO, $file);                  # otvorenie suboru pre vstup
    open(INFO, ">$file");	        # otvorenie suboru pre vystup
    open(INFO, ">>$file");	        # otvorenie suboru pre rozsirenie
    open(INFO, "<$file");	        # otvorenie suboru pre vstup

 

Ak chceme zapisovať do súboru, otvoríme súbor pre výstup a príkaz print použijeme s parametrom filehandle. Pre zápis reťazca do súboru s filehandlom INFO použijeme príkaz:

 

    print INFO "Riadok zapísaný do súboru.\n";

 

Na otvorenie štandardného vstupu (obvykle vstup z klávesnice) a štandardného výstupu (obrazovka) môžeme použiť:

 

    open(SUB, '-');	# otvorenie standardneho vstupu
    open(SUB, '>-');	# otvorenie standardneho vystupu

 

Nasledujúci príkaz číta dáta zadávané užívateľom z klávesnice, až do zadania prázdneho reťazca. Prečítané dáta vypisuje na obrazovku:

 

    while ($_ = <STDIN>) {
      print; 
    }

 

Príkaz print implicitne pracuje s premennou $_, preto v príkaze print nie je uvedený žiaden parameter. Podobne aj pri čítaní zo súboru sú dáta implicitne ukladaní do premennej $_. Preto je možné predchádzajúci príkaz napísať skrátene takto:

 

    while (<STDIN>) {
      print; 
    }

 

Tu môžete nájsť rôzne funkcie pre prácu so súbormi.

up


3.    Cykly a podmienky

 

3.1    Podmienený príkaz if

 

Perl samozrejme podporuje podmienený príkaz if. Má tieto možné tvary:

 

    if (podmienka) {
      príkazy;
    }
    if (podmienka) {
      príkazy1;
    }
    else {
      príkazy2;
    }
    if (podmienka1) {
      príkazy1;
    }
    elsif (podmienka2) {
      príkazy2;
    }
    ...
    elseif (podmienkaN) {
      príkazyN;
    }
    unless (!podmienka) {        
      príkazy
    } 

 

V poslednom, štvrtom tvare podmieneného príkazu,  za kľúčovým slovom unless musíme samozrejme použiť negovaný tvar podmienky, ktorej obyčajný tvar by sme použili v prvých troch tvaroch podmieneného príkazu.

 

Pripomeniem ešte, že prázdny reťazec je vyhodnotený ako false.

up

 

3.2    Príkazy riadenia

 

3.2.1    foreach

 

Príkaz foreach postupne použije každý prvok poľa alebo inej štruktúry v tvare zoznamu (riadkov súboru). Pre každý prvok poľa vykoná sekvenciu príkazov, ktorá nasleduje. Má tento tvar:

 

    foreach $premenna (zoznam) {     # pouzije kazdu polozku zoznamu
				     # a ulozi ju do premennej $premenna
      prikazy;
    }

 

 

3.2.2    for

 

Príkaz for má tento tvar:

 

    for (inicializacia; podmienka; inkrementacia) {
      prikazy;
    }

 

Napríklad:

 

    for ($i = 0; $i < 10; $i++)	{
      print "$i\n";
    }

 

 

3.2.3    while a until

 

Príkaz while prevádza opakovane sekvenciu príkazov pokiaľ platí podmienka. Príkaz until prevádza opakovane sekvenciu príkazov pokiaľ nezačne platiť podmienka. Majú takýto tvar:

 

    while (podmienka) {
      príkazy;
    }    

    until (podmienka) {
      príkazy;
    }

 

Namiesto while môžeme použiť aj príkaz do while. Jediným rozdielom je, že sekvencia príkazov sa vykoná aspoň raz. Má tvar:

 

    do {
      príkazy;   
    }
    while (podmienka)

 

 

3.2.4    Príkazy prerušenia cyklu

 

Existuje niekoľko príkazov, ktorými je možné ukončiť cyklus alebo ho modifikovať. Sú to napríklad príkazy last a next:

 

last

Príkaz last ukončí cyklus. Obvykle býva príkaz last spojený s príkazom if. Nasledujúci cyklus while(TRUE) môže vyzerať ako nekonečný, v skutočnosti sa ukončí v okamihu, keď je $i nula:

 

    $i = 10;
    while (TRUE) {
      last if $i==0;
      print $i;
      $i--;
    } 

 

next

Príkaz next skočí na začiatok cyklu, zvyšné príkazy za next sa vynechávajú. Často bývá príkaz next spojený s príkazom if.

 

 

3.2.5 Porovnávacie výrazy

 

Riadiace štruktúry sú založené na vyhodnotení výrazu s výsledkom true alebo false. V Perle je za true považované každé nenulové číslo a neprázdny reťazec. Ako false je vyhodnotené číslo nula, reťazec obsahujúci iba nulu a prázdny reťazec. Príklady porovnaní:

 

    $a == $b		# je $a číselne rovné $b?
    $a != $b		# je $a číselne rôzne od $b?
    $a eq $b		# je reťazec $a zhodný s reťazcom $b?
    $a ne $b		# je reťazec $a rôzny od reťazca $b?

 

Je možné použiť tiež logické and, or alebo not:

 

    ($a && $b)		# je $a a $b true?
    ($a || $b)		# je $a alebo $b true?
    !($a)		# je $a false?

 

up

 

4.    Porovnávanie reťazcov

 

Jednou z najväčších výhod Perlu (možno i najväčšou) sú výkonnné prostriedky pre manipuláciu s reťazcami. Základom sú regulárne výrazy (RE), ktoré sú použiteľné mnohými ďalšími utilitami UNIXu.

 

4.1    Regulárne výrazy

 

Regulárne výrazy sú uzavreté do lomených zátvoriek. Porovnávanie s regulárnymi výrazmi sa vykonáva pomocou operátoru =~.

Príklad: Nasledujúci výraz je pravdivý, ak sa v premennej $sentence vyskytuje reťazec velka.

 
    $sentence =~ /velka/
 

RE sú case senzitívne. Pokiaľ teda premenná $sentence obsahuje reťazec

 

    $sentence = "Velka hrdzava liska";

 

potom porovnanie v príklade vyššie je pravdivé.

 

Operátor !~ je používaný na testovanie nerovnosti. Ak teda premenná $sentence obsahuje reťazec "Velka hrdzava liska", je výraz

 
    $sentence !~ /velka/

 

pravdivý, pretože reťazec velka sa nevyskytuje v premennej $sentence.

 

 

4.2    Viac o regulárnych výrazoch

 

V RE sa používa mnoho špeciálnych znakov. Práve tieto špeciálne znaky robia z RE silné prostriedky, ale tiež spôsobujú, že RE vyzerajú na pohľad komplikovane.

Uvediem niektoré špeciálne znaky používané v RE a ich význam:

 
    .	# ľubovoľný znak, okrem znaku pre nový riadok
    ^	# začiatok riadka alebo reťazca
    $	# koniec riadka alebo reťazca
    *	# žiadny alebo niekoľko výskytov predchádzajúceho znaku
    +	# jeden alebo niekoľko výskytov predchádzajúceho znaku
    ?	# žiadny alebo jeden výskyt predchádzajúceho znaku

 

Existují ďalšie možnosti. Pre porovnanie so skupinou znakov sa používajú hranaté zátvorky. Porovnanie sa prevádza na ľubovoľný znak vo vnútri zátvoriek. Pomlčka - vo vnútri hranatých zátvoriek označuje znaky medzi uvedenými znakmi a znak ^ na začiatku zátvorky znamená negáciu:

 
    [qjk]		# q alebo j alebo k
    [^qjk]		# ani j ani g ani k
    [a-z]		# čokoľvek od a do z vrátane
    [^a-z]		# nie malé písmena
    [a-zA-Z]     	# ľubovoľné písmeno
    [a-z]+		# ľubovoľný neprázdný reťazec z malých písmen

 

 

Vertikálna čiara | znamená "or" a okrúhle zátvorky ( ... ) je možné použiť na zoskupovanie:

 
    nanuk|zmrzlina	# nanuk alebo zmrzlina
    (m|d)rak	        # mrak alebo drak
    (da)+		# da alebo dada alebo dadada alebo ..

 

Niektoré špeciálne znaky:

 

    \n		# nový riadok
    \t		# tabelátor
    \w		# ľubovoľný alfanumerický znak, \w je ekvivalentné s [a-zA-Z0-9_]
    \W		# ľubovoľný nealfanumerický znak, \W je ekvivalentné s [^a-zA-Z0-9_]
    \d		# ľubovoľná číslica, tj. [0-9]
    \D		# znak iný ako číslica, tj. [^0-9]
    \s		# znak pre vložené medzery, t.j. medzera, tab, nový riadok, atd.
    \S		# nemedzerový znak
    \b		# hranica slova, tento znak sa nedá použiť vo vnútri []
    \B		# na uvedenom mieste nie je hranica slova

 

Znaky ako $, |, [, ), \, / majú v RE zvláštny význam. Ak chceme porovnávať na výskyt niektorého z týchto znakov, musíme pred nimi uviesť spätnú lomenú zátvorku, t.j.:

 

    \|		# zvislá čiara
    \[		# úvodná hranatá zátvorka
    \)		# koncová zátvorka
    \*		# hviezdička
    \^		# strieška
    \/		# lomená zátvorka
    \\		# spätná lomená zátvorka

 

up

 

5.    Procedúry

 

Ako každý dobrý programovací jazyk, tak aj Perl umožňuje užívateľovi definovať svoje vlastné funkcie, které nazýváme procedúry. Procedúry môžu byť umiestnené kdekoľvek v programe, ale z hľadiska prehľadnosti je výhodné umiestniť všetky procedúry na koniec alebo začiatok programu. Príklad procedúry:

 

    sub vypis {
      print "Uplne jednoducha subroutina,\n";
      print "ktora pise stale to iste.\n";
    }

 

Do procedúry môžeme predávať parametre. Volanie procedúry je možné nasledujúcimi riadkami. Všimnite si, že procedúra je volaná iba menom procedúry, pred ktorou je znak &:

 
    &vypis;		# volanie procedury bez parametrov
    &vypis($_);	        # volanie s parametrom
    &vypis(1+2, $_);	# volanie procedury s dvoma parametrami

 

 

 

5.1    Lokálne premenné

 

Premenná @_ je lokálnou premennou danej procedúry, tak isto premenné $_[0], $_[1], $_[2],.... Je možné definovať ďalšie lokálne premenné. Definovanie lokálnych premenných je výhodné, pokiaľ chceme definovať vstupné parametre. Nasledujúca procedúra hľadá v reťazci podreťazec.

 
    sub inside {
      local($a, $b);			# vytvara lokalne premenne
      ($a, $b) = ($_[0], $_[1]);	# priradzuje hodnoty
      $a =~ s/ //g;			# odstranuje medzery
      $b =~ s/ //g;			# v lokalnych premennych
      ($a =~ /$b/ || $b =~ /$a/);	# je $b v $a alebo $a v $b?
    }

    &inside("lemon", "dole money");	# true

 

Procedúru je možné upraviť tak, že nahradíme prvé dva riadky riadkom

 
    local($a, $b) = ($_[0], $_[1]);

 

up

 

6.    Formát

 

Doposiaľ sme pre zápis dát na výstup používali príkaz print. Ak však potrebujeme dáta usporiadať do stĺpcov, uviesť hlavičku alebo preložiť pevným textom, použijeme tzv. formátovaný výstup. Vzhľad výstupu je daný predom definovaným formátom. Definíciu formátu je možné uviesť kdekoľvek v programe. Tento druh výstupu uskutočňuje príkaz write.

 

 

6.1    Definícia formátu

 

Definícia formátu začíná slovom format a končí riadkom obsahujúcim len bodku.

Príklad definície formátu:

 
    format MOJFORMAT =       
    ====== riadok s pevnym textom ======   
    Moje meno je @<<<<<<<<<< a priezvisko @<<<<<<<<<<<<<<
    $meno, $priezvisko
    .

 

Sekvencia znakov @<<<<<<<<<< definuje vzor pre premennú $meno. Ide o vľavo zarovnaný text, ktorý má 11 znakov.

 

 

6.2    Použitie formátu

 

Definovaný formát sa použije pri výpise príkazom write. Parametrom príkazu write je logické meno výstupného súboru, ktoré je rovnaké ako meno použitého formátu (implicitne). Príklad:

 
    open (MOJFORMAT,">subor.txt") || die "neda sa vytvorit subor subor.txt";
    $meno = Jan;
    $priezvisko = Novak;
    write(MOJFORMAT);

 

Výsledok pri použití vyššie definovaného formátu:

 
====== riadok s pevnym textom ======
Moje meno je Jan         a priezvisko Novak

 

Všimnite si, že je potrebné pred výstupom otvoriť výstupný súbor, ktorého logické meno je rovnaké ako meno formátu a naplniť premenné použité v definícii formátu. Pri zápise na štandardný výstup pomenujeme formát STDOUT.

 

 

6.3    Znaky použité vo vzore

 

Vzory premenných začínajú znakom @. Znaky za znakom určujú druh dát. Počet znakov vrátane znaku @ určuje dĺžku dát.

 

Formát

Význam

@<<<

vľavo zarovnané pole o dĺžke 4, sprava sa doplnia medzery, dlhší reťazec sa odreže

@>>>

vpravo zarovnané pole o dĺžke 4, zľava sa doplnia medzery

@||||

centrované pole o dĺžke 5

@###.##

číselná položka, ktorá má 4 miesta pred bodkou, dve za bodkou

@*

viacriadkové pole, sú interpretované znaky konca riadku uložené v reťazci v premennej

~ (tilda)

riadok obsahujúci tento znak sa tlačí len ak nie je prázdny

 up

 

7.    Použitie knižníc

 

Knižnice sa používajú v Perl scripte (napr. CGI). Sú uložené v určenom adresári, kde ich interpreter Perlu hľadá. My ich budeme dávať do adresára Perl\lib\. ak chceme v našom scripte volať niektorú z knižnícových procedúr, musíme to zahrnúť do zdrojového textu scriptu, a to príkazom require. Príklad použitia knižnice ctime.pl:

 
    require "ctime.pl";

    $datum = &ctime(time);
    print "datum: $datum\n";

 

Štandardnou knižnicou pre vytváranie CGI scriptov v jazyku Perl je knižnica cgi-lib.pl Môžete si ju stiahnuť tu. Knižnica obsahuje procedúry:

 

Procedúra Význam
ReadParse
Procedúra číta dáta poslané metódou GET alebo POST, konvertuje ich a ukladá do asociatívneho poľa. Viacnásobné možnosti oddeľuje znakmi /0. Procedúra vracia hodnotu >0, ak v požiadavke boli predané nejaké dáta, hodnotu <0, ak v požiadavke žiadne dáta neprišli.
PrintHeader
Tlačí hlavičku Content-type: text/html a prázdný riadok.
HtmlTop
Tlačí úvodné príkazy HTML dokumentu a hlavičku H1. Titul dokumentu a text hlavičky H1 sa zadává ako parameter pri volaní procedúry.
HtmlBot
Tlačá koncové príkazy HTML dokumentu.
SplitParam
Rozdeluje parameter s viacerými hodnotách do zoznamu.
MethGet
Vracia true, ak je použitá metoda GET
MethPost
Vracia true, ak je použitá metoda POST
MyBaseUrl
Vracia základnú URL pre script bez doplnkových informácií a vstupného reťazca.
MyFullUrl
Vracia základnú URL pre script s doplnkovými informáciami a vstupným reťazcom.
CgiError
Tlačí chybovú správu aj s hlavičkou. Prvý parameter je titul, Ďalšie parametre sú jednotlivé odstavce tela chybovej správy.
CgiDie
Identické s CgiError, naviac vypíše číslo riadku s chybou.
PrintVariables
Vracia formátované premenné-
PrintEnv
Vracia formátované všetky premenné prostredia.
 

up