HOME -> PERL_TUTORIAL -> perl-03 Tirsdag, 27. Juni 2017

HOME
FORUM
OPEN DIRECTORY
BOOKMARK
Offentliggjort 2003 - Opdateret n/a

Lektion 03

Grundlæggende til PERL II

Indhold

 

TopProgrammerings delen!
Der findes mange måder at programmere i perl, og de virker stort set alle sammen lige godt. Om du definerer dine variabler med &navn eller my &navn har den samme effekt. Jeg vil dog fra starten, så vidt det er muligt, anvende en mere rent og ensartet fremgangsmåde for derved at undgå alt for mange fejl i scriptet.

En af optionerne som er tilrådelig at anvende er -w som er indehold i scriptets første linie. Via denne option returnerer Perl-fortolkeren advarsler om fejl og tvivlsomme kommandoer førend scriptet køres.

Det er også en god ide at anvende use strict;. Via denne indbindes/aktiveres et modul som medfører at perl-fortolkeren ikke accepterer usikre konstruktioner/kodninger førend scriptet køres. Eksempler på dette kan være variabler som ikke er blevet defineret.
Ved anvendelsen af use strict; tvinger perl programmøren til at deklarere variablerne før første brug med f.eks. my.

Anvendelsen af use CGI::Carp qw(fatalsToBrowser); tilrådes ligeledes. Også her indbindes/aktiveres et specielt modul der reagerer når scriptet afbrydes på grund af syntaks fejl eller ved anvendelsen af die, fejlmeldingen sendes direkte til den kaldende browser. På den måde kan man undgå at grave alt for meget i log filerne for fejl. Ligger syntaks fejl i første linie hvor perl-fortolkeren kaldes, får man selvsagt ikke nogen hjælp, da modulet endnu ikke er blevet kaldt.

print "Content-type: text/html\n\n"; er en nødvendig linie i scriptet og kommer oftest efter use strict og use CGI, dog senest før den egentlige kode.... Den indbyggede funktion print udskriver hvad der står mellem anførselstegnene.
Content-type: text/html fortæller browseren hvordan den skal opfatte informationen som bliver sendt til den. MIME-typen er her text/html, og afsluttes med to gange \n som kort sagt betyder "new line".
Der kommer mere om HTTP-header samt print kommandoen i en senere lektion.

Instruktionerne afsluttes med semikolon.

Hvis man har et script som indeholder meget kode, er det en god ide at anvende subrutiner, især hvis en del af koden anvendes op til flere gange.
Via subrutiner laver du en form for blokke, som du kan kalde fra et hvilket som helst sted i scriptet.

En anden god ting er at anvende kommentarer når man programmerer. På den anden side må kommentarer som indskrives i scriptet heller ikke blive for lang, da dette igen forstyrrer overblikket.

Vi kan her passende tage vores eksempel fra forrige lektion. Og for at scriptet returnerer et valid html dokument tilføjer jeg en dokument type erklæring.


#!/usr/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);

print "Content-type: text/html\n\n";

print '<?xml version="1.0" encoding="iso-8859-1"?>' , "\n";
print '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"' , "\n";
print '"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">' , "\n";
print '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">' , "\n";
print "<head><title>Perl test</title></head><body>\n";


my $i = 1; #her defineres variablen $i
#==============================================
# Her er en kommentar, kunne være en
# vejledning i brugen af scriptet.
# Dette script udskriver tallene fra 1 til 10
#==============================================

print "<p>\n";

while($i <= 10) {
print "tal nr. ", $i, "<br />\n";
$i = $i + 1;
}

print "</p>\n";

print "</body></html>\n";


Resultat:


Html koden der returneres af perl scriptet ser ud som følgende:


<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
<head><title>Perl test</title></head><body>
<p>
tal nr. 1<br />
tal nr. 2<br />
tal nr. 3<br />
tal nr. 4<br />
tal nr. 5<br />
tal nr. 6<br />
tal nr. 7<br />
tal nr. 8<br />
tal nr. 9<br />
tal nr. 10<br />
</p>
</body></html>


 

Næste lektion omhandler brugen af skalare variabler.

SKALARE VARIABLER >>

 

Copyright © 2002 - 2017
NETeXplorer.dk · All rights reserved Top