Erinevus lehekülje "Perl" redaktsioonide vahel
(→STDIN kasutamine) |
|||
32. rida: | 32. rida: | ||
print fh "Tere, see tekst\n"; | print fh "Tere, see tekst\n"; | ||
close fh; | close fh; | ||
+ | |||
+ | ===Perli CGI skript=== | ||
+ | |||
+ | |||
+ | Lisaks peab CGI skript rahuldama järgmisi tingimusi: | ||
+ | skript peab asuma kataloogistruktuuri html all | ||
+ | skript peab kuuluma sellele kasutajale, kelle veebikohale vastavas kataloogistruktuuris ta asub | ||
+ | skriptile ei tohi viidata absoluutse (/ee/edu/zoo/www/html/skript.cgi) teega | ||
+ | skript peab olema kirjutatav vaid kasutajale endale | ||
+ | skriptile peab olema antud käivitamisõigus, näiteks käsuga 'chmod 755 skript.cgi' | ||
+ | |||
+ | Skripti esimesel real tuleb näidata Perli interpretaatori asukoht (/usr/bin/perl). Esimese asjana peab skript väljundisse kirjutama HTTP päise. Kui määratletakse Content-type, näiteks 'text/html', peab sellele järgnema kaks reavahetust. | ||
+ | |||
+ | Näiteks selline Perlis kirjutatud CGI skript trükib brauseris ekraanile 'Tere rahvas!' | ||
+ | |||
+ | #!/usr/bin/perl | ||
+ | print "Content-type: text/html\n\n"; | ||
+ | print "<HTML><BODY>"; | ||
+ | print "Tere rahvas!"; | ||
+ | print "</BODY></HTML>"; | ||
+ | |||
+ | Näite vaatamiseks järgige viidet perl.cgi | ||
+ | |||
+ | Kui te kasutate CGI skripte veebivormidega tegelemisel, siis on tõenäoliselt neid tarvis töödelda. Selleks soovitame meie serveris, va erilisel vajadusel kasutada Perli CGI.pm moodulit. Näiteks töötleme CGI.pm mooduli vahenditega järgmist vormi | ||
+ | |||
+ | <HTML> | ||
+ | <BODY> | ||
+ | <FORM ACTION="plkontroll.cgi" METHOD="POST"> | ||
+ | nimi: <INPUT TYPE="text" NAME="nimi" ><br> | ||
+ | linn: <INPUT TYPE="text" NAME="linn" ><br> | ||
+ | koht: <INPUT TYPE="text" NAME="koht" ><br> | ||
+ | <input type="reset" value="Puhasta väljad"> | ||
+ | <input type="submit" value="OK"> | ||
+ | </FORM> | ||
+ | </BODY> | ||
+ | </HTML> | ||
+ | |||
+ | Vormis sisalduv ACTION="plkontroll.cgi" kutsub välja sellise CGI skripti plkontroll.cgi | ||
+ | |||
+ | #!/usr/bin/perl | ||
+ | use CGI; | ||
+ | $q = new CGI; | ||
+ | # | ||
+ | # tekitatakse HTTP päis, | ||
+ | # see on ekvivalentne käsuga | ||
+ | # print "Content-type: text/html\n\n"; | ||
+ | # | ||
+ | print $q->header('text/html'); | ||
+ | # | ||
+ | # tekitatakse HTML-dokumendi algus, | ||
+ | # see on ekvivalentne käsuga | ||
+ | # print "<HTML><HEAD><TITLE>Dokumendi tiitel</TITLE></HEAD><BODY>"; | ||
+ | # | ||
+ | print $q->start_html('Dokumendi tiitel'); | ||
+ | print "Vormilt saadi järgmised väärtused:<br>"; | ||
+ | print "nimi:", $q->param('nimi'), "<br>"; | ||
+ | print "linn:", $q->param('linn'), "<br>"; | ||
+ | print "koht:", $q->param('koht'), "<br>"; | ||
+ | # | ||
+ | # väljastatakse HTML-dokumendi lõpp, | ||
+ | # see on ekvivalentne käsuga | ||
+ | # print "</BODY></HTML>"; | ||
+ | # | ||
+ | print $q->end_html; |
Redaktsioon: 23. detsember 2008, kell 14:13
Programmi argumendid
Argumentide programmi sees kasutamiseks sobib kasutada vaikimisi moodustatud massiivi ARGV, nt sellised
#!/usr/bin/perl print "$ARGV[0]\n"; print "$ARGV[1]\n";
ja käivitades
$ perl argv.pl tere mart tere mart
STDIN kasutamine
Standardsisendi (ingl. k. standard input) kasutamist kirjeldab näiteks selline programmilõik
#!/usr/bin/perl @read=<STDIN>; foreach $rida (@read) { print $rida; }
Faili kirjutamine
Faili kirjutamist kirjeldab nt selline programmilõik
#!/usr/bin/perl open (fh, ">>/tmp/pf.log"); print fh "Tere, see tekst\n"; close fh;
Perli CGI skript
Lisaks peab CGI skript rahuldama järgmisi tingimusi: skript peab asuma kataloogistruktuuri html all skript peab kuuluma sellele kasutajale, kelle veebikohale vastavas kataloogistruktuuris ta asub skriptile ei tohi viidata absoluutse (/ee/edu/zoo/www/html/skript.cgi) teega skript peab olema kirjutatav vaid kasutajale endale skriptile peab olema antud käivitamisõigus, näiteks käsuga 'chmod 755 skript.cgi'
Skripti esimesel real tuleb näidata Perli interpretaatori asukoht (/usr/bin/perl). Esimese asjana peab skript väljundisse kirjutama HTTP päise. Kui määratletakse Content-type, näiteks 'text/html', peab sellele järgnema kaks reavahetust.
Näiteks selline Perlis kirjutatud CGI skript trükib brauseris ekraanile 'Tere rahvas!'
#!/usr/bin/perl print "Content-type: text/html\n\n"; print "<HTML><BODY>"; print "Tere rahvas!"; print "</BODY></HTML>";
Näite vaatamiseks järgige viidet perl.cgi
Kui te kasutate CGI skripte veebivormidega tegelemisel, siis on tõenäoliselt neid tarvis töödelda. Selleks soovitame meie serveris, va erilisel vajadusel kasutada Perli CGI.pm moodulit. Näiteks töötleme CGI.pm mooduli vahenditega järgmist vormi
<HTML> <BODY> <FORM ACTION="plkontroll.cgi" METHOD="POST"> nimi: <INPUT TYPE="text" NAME="nimi" >
linn: <INPUT TYPE="text" NAME="linn" >
koht: <INPUT TYPE="text" NAME="koht" >
<input type="reset" value="Puhasta väljad"> <input type="submit" value="OK"> </FORM> </BODY> </HTML>
Vormis sisalduv ACTION="plkontroll.cgi" kutsub välja sellise CGI skripti plkontroll.cgi
#!/usr/bin/perl use CGI; $q = new CGI; # # tekitatakse HTTP päis, # see on ekvivalentne käsuga # print "Content-type: text/html\n\n"; # print $q->header('text/html'); # # tekitatakse HTML-dokumendi algus, # see on ekvivalentne käsuga # print "<HTML><HEAD><TITLE>Dokumendi tiitel</TITLE></HEAD><BODY>"; # print $q->start_html('Dokumendi tiitel'); print "Vormilt saadi järgmised väärtused:
"; print "nimi:", $q->param('nimi'), "
"; print "linn:", $q->param('linn'), "
"; print "koht:", $q->param('koht'), "
"; # # väljastatakse HTML-dokumendi lõpp, # see on ekvivalentne käsuga # print "</BODY></HTML>"; # print $q->end_html;