sivut.web

ohjeita web-sivuston tekijälle

Perl-opas: Alirutiinit

Yleistä

Kuten muutkin ohjelmointikielet Perl sallii käyttäjän määritellä omia funktioitaan, joita kutsutaan alirutiineiksi ( subroutines ). Ne voidaan sijoittaa minne tahansa skriptissä, mutta lienee selkeintä sijoittaa ne joko alkuun tai loppuun. Alirutiinit ovat muotoa:

sub mysubroutine
{
print "Not a very interesting routine\n";
print "This does the same thing every time\n";
}

Kaikki seuraavat kutsuvat tätä alirutiinia:

&mysubroutine;          kutsuu alirutiinia 
&mysubroutine($_);      kutsuu alirutiinia parametrilla 
&mysubroutine(1+2, $_); kutsuu alirutiinia kahdella parametrilla 

Parametrit

Edellisessä esimerkissä parametrit ovat hyväksyttäviä, mutta ne jätetään huomiotta. Kutsuttaessa alirutiinia kaikki parametrit välitetään listana matriisissa @_. Tällä muuttujalla ei ole mitään tekemistä skalaarimuuttujan $_:n kanssa. Seuraava alirutiini tulostaa listan niistä parametreista, joilla sitä kutsuttiin.

sub printargs
{
print "@_\n";
}

Kuten minkä tahansa muunkin matriisin tapauksessa, matriisin @_ yksittäisiin elementteihin päästään hakasulkujen avulla:

sub printfirsttwo
{
print "Your first argument was $_[0]\n";
print "and $_[1] was your second\n";
}

Indeksoiduilla skalaareilla $_[0] ja $_[1] jne. Ei ole mitään tekoa skalaarin $_ kanssa.

Arvojen palauttaminen

Alirutiinin tulos on aina viimeinen arvioiotava seikka. Seuraava alirutiini palauttaa kahdesta parametrista suuremman:

sub maximum
{
if ($_[0] $_[1])
  {
  $_[0];
  }
else
  {
  $_[1];
  }
} 

&printfirsttwo alirutiini yllä palauttaa myös arvon, tässä tapauksessa numeron 1, koska viimeinen asia, jonka rutiini teki oli print-lause ja onnistuneen-lauseen tulos on aina 1.


Käyttäjien kommentit

Ei kommentteja

Lisää oma kommentti


Ari Paulin
ari.paulin@pp.htv.fi
http://www.pp.htv.fi/apaulin/