Utilizarea Perl in scrierea de programe CGI, Despartire in cuvinte parsing



Despartire in cuvinte (parsing).


Cand se includ paranteze rotunde in sabloanele de cautare, secventele cu care se potrivesc acestea, pot fi accesate folosind variabilele $1,$2,$3, etc.. in ordine de la prima paranteza din stanga. Aceste secvente pot fi asignate ca si elemente succesive ale unui sir.



Exemplu:


#! usr/bin/perl -w

$s = 'Acest sir contine 1 subsir de tip data 10/10/99 undeva.';


# sirul /d semnifica un sir de cifre

$s =~ d)/(d)/(d)/;


# varianta 1:

print '$1 = $1, $2 = $2, $3 = $3n';


# varianta 2:

= ($s =~ /(d)/(d)/(d)/);

print '$ziua, $luna, $ann';


#varianta 3:

= ($s =~ /(d)/(d)/(d)/);

print '$data, $ziua, $luna, $ann';


14. Utilizarea Perl in scrierea de programe CGI.


Limbajul Perl poate fi folosit cu succes in scrierea de aplicatii CGI (Common Gateway Interface), acestea fiind folosite pe serverele de Web. Un program CGI ruleaza pe platforma Web Serverului , astfel chiar daca WebServerul este o masina Unix si utilizatorul acceseaza programul CGI de pe o platforma Windows, aplicatia CGI se poate rula fara probleme pe masina Unix, iar rezultatele afisate de aceasta sunt afisate in browserul utilizatorului.


Exemplu: Afisarea starii serverului:

Aplicatia foloseste comenzile unix 'uptime', 'hostname', si 'w'.

Pentru a vedea rezultatele acestui program, vizitati adresa:

https://www.scs.ubbcluj.ro/~mr28602/serverstatus.cgi


Programul este:         

#! usr/bin/perl

# Trimite mesajele de eroare catre utilizator, nu catre sistem

open(STDERR,'<&STDOUT'); $| = 1;


# Programul va furniza browserului, un fisier html

print 'Content-type: text/htmlnn';

$host = `hostname`; chop $host;

$uptime = `uptime`;

$w = `w -s -h`;

print <<BUNCHASTUFF;

<Html><Head>

<H1>Informatii despre serverul $host</H1>

</Head><Body>

$uptime

<PRE>$w</PRE>

<HR>

</Body></Html>

BUNCHASTUFF;

exit;


Pentru folosirea aplicatiei este necesar sa setam fisierului serverstatus.cgi, drepturi de acces, citire, si executi cu comanda Unix:


chmod a+rx serverstatus.cgi