Perl

Wikipediasta
Siirry navigaatioon Siirry hakuun
Tämä artikkeli käsittelee ohjelmointikieltä.Perlon myös kunta Saksan Saarlandissa Moselin varrella.
Perl
Paradigma proseduraalinen, olio
Tyypitys heikko,dynaaminen
Yleinen suoritusmalli tulkattava
Muistinhallinta automaattinen roskienkeräys
Julkaistu 1987
Kehittäjä Larry Wall
Vakaa versio 5.40.0 ()[1]
Vaikutteet AWK,BASIC-PLUS,C,C++,Lisp,Pascal,Python,sed,Unix shell
Vaikuttanut Python,PHP,Ruby
Käyttöjärjestelmä alustariippumaton
Verkkosivu http:// perl.org/
Uutisryhmä comp.lang.perl.misc

PerlonLarry Wallinkehittämä tulkattava, proseduraalinen,skriptimäinenohjelmointikieli.

Kieli on monimuotoinen ja sen oppiminen on helppoa.lähde?Toisaalta sen ohjelmointitapojen moninaisuus ei pakota ohjelmoijaa” siistiin” koodiin, joten Perl-nimen on myös vitsailtu tulevan sanoista” Pathologically Eclectic Rubbish Lister”. Perlin nimeä pidetään joskus lyhenteenä sanoistaPractical Extraction and Report Language,vaikka alun perin nimi ei oleakronyymi.[2]

Perlin syntaksissa on yhdistelty vaikutteitaAWK:sta,sedistä,Shell-skripteistä,C-kielestäjaLispistä.Kaikenlaisetsäännölliset lausekkeet,esimerkiksi tekstinkäsittelyssä; data-analyysi; datan käsittely sekä modularisointi ovat helppoja Perlillä, minkä takia se onkin suosittu kieli myösUnix-ylläpitäjienkeskuudessa. Perlin onkin sanottu olevan ohjelmointikieli, jolla helpot asiat ovat helppoja ja vaikeat mahdollisia. Kielessä on pyritty suureen ilmaisuvapauteen, ja ongelman voi ratkaista monella tavalla. Perliä on sanottu myös” internetin roudarinteipiksi”[3].

Laajojen Perlillä kirjoitettujen ohjelmien vaikea ylläpidettävyys, yhdistettynä säännöllisten lausekkeiden ilmaisun tehokkuuteen, on tehnyt Perl-kieliset yhden rivin ohjelmat (one-liners) suosituiksi. Esimerkiksi seuraava ohjelma vaihtaa kaikista tiedostoista tekstin”foo”muotoon” bar”:

$perl-p-i-e's/foo/bar/g'*

Perl on ollut suosittu työkalu ylläpitäjien keskuudessa. 1990-luvun lopulta alkaen Perl oli erityisen suosittuWWW-ohjelmoijien työkaluna ja siihen on kehitetty joukko tätä tukevia kirjastoja (kutenCGI-rajapinta CGI.pm ja tietokantarajapinta DBI). Perl on suosittu kieli tiettyjen nopeaa prototyypitystä hyödyntävien yhteisöjen keskuudessa, esimerkiksi kielitieteessä ja bioinformatiikassa, varsinkin kun kielen oppiminen ja toimivan koodin kirjoittaminen on nopeaa uudellekin ohjelmoijalle. Perl-kielisillä ohjelmilla oli esimerkiksi merkittävä rooli ihmisen geeniperimää kartoittavassaHuman Genome Project-hankkeessa[4].

Larry Wall alkoi kehittää Perliä vuonna 1987 ja julkaisi version 1.0 comp.sources.misc-uutisryhmässäjoulukuussa 1987. Kieli kasvoi nopeasti muutamina seuraavina vuosina. Perl 2 julkaistiin vuonna 1988, sisältäen parannellunsäännöllisten lausekkeidenmoottorin. Perl 3 julkaistiin vuotta myöhemmin ja siihen oli lisätty tukibinääriselledatalle.

Vuoteen 1991 asti ainoa dokumentaatio Perlille oli yksi ainoa manuaalisivu. Vuonna 1991Programming Perl(” the Camel Book” ) julkaistiin, ja samaan aikaan Perlin versionumero nousi neloseen, erottaakseen version, joka dokumentoitiin kirjassa.

Perl 4 kulki läpi monien päivitysten huipentuen versioon 4.036 vuonna 1993. Siinä vaiheessa Larry Wall jätti Perl 4:n ja rupesi työskentelemään Perl 5:n parissa.

Perl 5:n kehitys jatkui vuoteen 1994. Perl5-porters-sähköpostilistaperustettiintoukokuussa1994 Perlin kehitystä ja muille alustoille porttausta varten. Se pysyi merkittävimpänä keskustelupaikkana Perl 5:n kehitykselle ja porttaukselle.

Perl 5 julkaistiin 17. lokakuuta 1994. Se oli lähes kokonaan uudelleen kirjoitettu tulkki ja sisälsi monia uusia ominaisuuksia, sisältäenoliot,viittaukset,pakkauksetjamoduulit.lähde?Moduulit tarjosivat tavan laajentaa kieltä muuttamatta tulkkia.

Lokakuun 26. päivänä 1995 perustettiinComprehensive Perl Archive Network.CPAN on kokoelma web-sivuja, jotka varastoivat Perl-koodia, binäärejä, dokumentaatiota, skriptejä ja moduuleja. Alun perin jokaiselle CPAN-sivulle piti mennä omanURL-osoitteen avulla; nykyään yksi URL vie CPAN sivulle:http://cpan.org.

Vielä 2010-luvulla Perl 5:tä kehitettiin aktiivisesti. Nykyään se sisältää tuenUnicodelle.

Perl 6:n kehitys alkoi kesällä 2000 kun Larry Wall ilmoitti siitä Perl-konferenssissa. Vuonna 2001 päätettiin, että Perl 6 ajetaanParrot-nimisenvirtuaalikoneenpäällä. Vuonna 2010 molempia, Perl 6:ta ja Parrotia, kehitetään aktiivisesti. Lokakuussa 2019 Perl 6 sai uuden nimen Raku. Tuolloin projekti oli jatkunut jo 19 vuotta.[5]

Kielen ominaisuuksia

[muokkaa|muokkaa wikitekstiä]

Perlin yleinen rakenne periytyy C-kielestä. Perl on rakenteellinen ohjelmointikieli, joka sisältää muuttujia, lausekkeita, aaltosulkein erotettuja lohkoja, kontrollirakenteita ja aliohjelmia.

Perliin on otettu ominaisuuksia myös Shell-ohjelmoinnista. Kaikki nykyiset (Perl 5 -) ohjelmat tulkataan. Koska muuttujien nimien edessä on tietyt merkit[1],niitä voi helposti sisällyttää merkkijonoihin. Kuten Unixin shellissä, myös Perlissä on sisäänrakennettuja funktioita yleisille tehtäville, kuten järjestämiselle ja järjestelmän palveluiden käyttöön.

Perl lainaa assosiatiiviset taulukot AWK:sta ja säännölliset lausekkeet Sedistä. Ne helpottavat ja selventävät jäsennystä ja tekstin käsittelyä.

Perl 5:een on lisätty moninaisia tietorakenteita jaoliopohjainenohjelmointimalli, joihin sisältyvät viittaukset, paketit ja oliopohjaisen metodien suorittamisen. Lisäksi Perl 5:een lisättiin muuttujien näkyvyysalueet, jotka helpottavat selkeän koodin kirjoittamista.

Kaikki Perlin versiot hoitavat automaattisesti datan tyypityksen ja muistin hallinnan. Tulkki tuntee objektin tyypin ja sen tarvitseman muistin määrän; se varaa tai vapauttaa muistia silloin, kun se on tarpeellista. Lailliset tyyppimuunnokset tehdään automaattisesti suorituksen aikana, ja laittomat aiheuttavat käännösvirheen. Perlissä ei ole mahdollista aiheuttaa muistivuotoa, kaataa tulkkia tai sekoittaa sisäistä datan esitystä.

Perlintyyppijärjestelmässäon kolme sisäänrakennettua datatyyppiä: skalaarit, taulukot ja hajautustaulut (hashes). Skalaari sisältää yhden arvon, kuten numeron, tekstiä tai viittauksen. Taulukot ovat skalaareiden järjestettyjä listoja, jotka on indeksoitu alkaen numerosta 0. Hajautustaulut ovat assosiatiivisia, järjestämättömiä taulukoita, jotka sisältävät skalaareja ja jotka on indeksoitu avaimen avulla.

Skalaarit, taulukot ja hajautustaulut voidaan liittää nimettyihin muuttujiin. Muuttujan ensimmäinen merkki ($, % tai @) kuvaa muuttujan sisältämää datatyyppiä. Loppuosa on muuttujan nimeä.

Skalaarin nimi alkaa aina merkillä” $”, vaikka muuttuja kuuluisi taulukkoon tai hajautustauluun:

$kuukaudet[11]# @kuukaudet-taulukon kahdestoista elementti
$osoitteet{'Pekka'}# %osoitteet-hajautustaulun 'Pekka'-elementti


Taulukot alkavat” @” -merkillä…

@kuukaudet=("tammikuu","helmikuu");
$toinen=$kuukaudet[1];# $toinen = helmikuu
$maara=@kuukaudet;# $maara = 2


… ja hajautustaulukot puolestaan” %” -merkillä.

%kuukaudet=(
"ensimmäinen"=>"tammikuu",
"toinen"=>"helmikuu",
"kolmas"=>"maaliskuu"
);
$toinen=$kuukaudet{"toinen"};# $toinen = helmikuu

Tiedostohello.pl:

#!/usr/bin/perl -w
usestrict;
my$w="world";
my$h="Hello $w!\n";
print$h;

Ensimmäisellä rivillä kerrotaanUnix-järjestelmälle (ks.shebang), että ohjelma ajetaan /usr/bin/perl-ohjelmalla.

Toisella rivillä määritellään käyttöön tiukka syntaksi, eli kolmannen ja neljännen rivin muuttujat on pakko määritellä käyttäen avainsanaamytaiour.

Neljännellä rivillä muuttuja$winterpoloidaanmuuttujaan$h,joka tulostetaan rivillä viisi.

Jos tiedostolla on suoritusoikeudet (chmod +x hello.pl), se voidaan ajaa suoraan:

$./hello.pl
Hello world!

Muuten käytetään Perl-tulkkia:

$ perl hello.pl
Hello world!

Aiheesta muualla

[muokkaa|muokkaa wikitekstiä]