Perl guide


Subrutiner

Har du en bit av programkoden som kommer att köras flera gånger från olika delar av scriptet, eller bara för att strukturera upp koden kan du använda dig av så kallade subrutiner. Dessa är som små funktioner som definieras med sub. En subrutin kan se ut så här.

sub skriv_html {
	print "Content-type:text/html\n\n";
	print "<html>\n";
	print "<head><title>Mitt CGI-script</title></head>\n";
	print "<body>\n";
}

Koden som står i subrutinen kommer inte att exekveras förrens den anropas. I exemplet nedan anropas subrutinen och en rad till skrivs.

&skriv_html;
print "Detta är första raden på sidan.<br>\n"

Exemplet kommer först att köra koden som finns i subrutinen skriv_html och sedan fortsätta med print-satsen. Det som skrivs ut är alltså;

Content-type:text/html

<html>
<head><title>Mitt CGI-script</title></head>
<body>
Detta är första raden på sidan.<br>


Du kan även skicka med data till en subrutin för att sedan använda detta data till en beräkning i subrutinen. Data som skickas till en subrutin lagras i en array med namnet "_". Om vi kallar det data som vi skickar till subrutinen för parametrar så finns alltså första parametern i $_[0], den andra i $_[1] osv.

addera(2,3);
sub addera {
	$summa = $_[0] + $_[1];
	print $summa;
}

Vi har nu lärt oss att skicka data till en subrutin, men ofta vill man använda detta data för att göra en beräkning och sedan använda resultatet i en annan del av scriptet. Då kan det vara önskvärt att returnera ett värde från subrutinen. Det gör man med kommandot return.

$summa = addera(2,3);
print $summa;
sub addera {
	$summa = $_[0] + $_[1];
	return $summa;
}

Tillbaks till innehållsförteckningen


© Johan Johansson -1999 Jojoxx.net