New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Perl – Wikipedia

Perl

Wikipedia

Kuva:-
Paradigma proseduraalinen, olio
Tyypitys dynaaminen, heikko
Yleinen suoritusmalli tulkattava
Muistinhallinta Automaattinen roskienkeräys
Julkaistu 1987
Kehittäjä Larry Wall
Viimeisin vakaa versio 5.8.8
Viimeisin julkaisupäivä 31. tammikuuta 2006
Viimeisin kehitysversio 5.9.3
Merkittävimmät toteutukset
Vaikutteet Python, PHP, Ruby
Vaikuttanut AWK, BASIC-PLUS, C, C++, Lisp, Pascal, Python, Sed, Unix shell
Murteet
Käyttöjärjestelmä alustariippumaton
WWW-sivut www.perl.org
Uutisryhmä comp.lang.perl

(muokkaa)

Perl (Practical Extraction and Report Language) on Larry Wallin kehittämä tulkattava proseduraalinen skriptimäinen ohjelmointikieli. Se on hyvin monimuotoinen ohjelmointikieli ja sen oppiminen on helppoa. Toisaalta sen ohjelmointitapojen moninaisuus ei pakota ohjelmoijaa "siistiin" koodiin, joten Perl-nimen on myös vitsailtu tulevan sanoista "Pathologically Eclectic Rubbish Lister".

Perl on varsin suosittu ohjelmointikieli, jonka syntaksissa on yhdistelty vaikutteita awk:sta, sed:istä, shell-skripteistä, C-kielestä ja Lispistä. Kaikenlaiset säännölliset lausekkeet esimerkiksi tekstinkäsittelyssä, data-analyysi, datan käsittely sekä modularisointi on helppoa Perlillä, minkä takia Perl onkin suosittu kieli myös unix-ylläpitäjien keskuudessa. Perlistä onkin sanottu, että se on ohjelmointikieli, jolla helpot asiat ovat helppoja ja vaikeat asiat mahdollisia. Perliä on sanottu myös "Internetin maalarinteipiksi".

Kielessä on pyritty suureen ilmaisuvapauteen, minkä ansiosta sillä on kirjoitettu jopa runoja. Perlin käyttäjät toteavat usein, että ongelman voi ratkaista monella tavalla. Perlillä on harrastettu myös "golfia". Perl-golfissa ideana on se, että annettu ongelma on ratkaistava Perl-ohjelmalla, ja lyhin ohjelmakoodi on voittaja. Ilmaisuvapaudesta seuraa, että kilpailuun osallistuneet ohjelmat ovat usein keskenään ohjelmakoodiltaan hyvinkin erilaisia, vaikka tekevät saman asian. Tällaiset ohjelmat ovat tosin usein lähes lukukelvottomia.

Laajojen Perlillä kirjoitettujen ohjelmien vaikea ylläpidettävyys yhdistettynä säännöllisten lausekkeiden ilmaisun tehokkuuteen on tehnyt Perl-kieliset yhden rivin ohjelmat (one-liners) suosituksi. Esimerkiksi vaihda kaikista tiedostoista "foo" tekstiksi "bar":

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

Sisällysluettelo

[muokkaa] Suosio

Monipuolinen Perl on suosittu työkalu ylläpitäjien keskuudessa. 1990-luvun lopulta alkaen Perl on ollut erityisen suosittu WWW-ohjelmoijien keskuudessa, ja siihen on kehitetty joukko WWW-ohjelmointia tukevia kirjastoja (CGI-rajapinta CGI.pm, 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. Lisäksi Suomessa on joukko yrityksiä, jotka tuottavat laajojakin ohjelmistoja Perl-kielellä.

[muokkaa] Historia

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 1988, ja se sisälsi parannellun säännöllisten lausekkeiden moottorin. Perl 3 julkaistiin vuotta myöhemmin ja siihen oli lisätty tuki binääriselle datalle.

Vuoteen 1991 asti ainoa dokumentaatio Perlille oli yksi ainoa manuaalisivu. Vuonna 1991 Programming Perl (the Camel Book) julkaistiin, ja samaan aikaan Perlin versionumero nousi neloseen, ei sen takia, että kieleen olisi tullut suuria muutoksia, vaan 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 kanssa.

Perl 5:n kehitys jatkui vuoteen 1994. Perl5-porters-postituslista perustettiin toukokuussa 1994, Perlin kehitystä ja muille alustoille porttausta varten. Se pysyi pääasiallisena keskustelupaikkana Perl 5:n kehitykselle ja porttaukselle.

Perl 5 julkaistiin lokakuun 17.1994. Se oli lähes kokonaan uudelleen kirjoitettu tulkki ja sisälsi monia uusia ominaisuuksia, sisältäen oliot, viittaukset, pakkaukset ja moduulit. Moduulit tarjosivat tavan laajentaa kieltä muuttamatta tulkkia.

Lokakuun 26. päivänä 1995 perustettiin Comprehensive 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ä oman URL-osoitteen avulla; nykyään yksi URL vie CPAN sivulle: http://cpan.org .

Vielä vuonna 2005 Perl 5:ttä kehitetään aktiivisesti. Se sisältää nykyään tuen Unicodelle. Viimeisin Perlin versio on Perl 5.8.6. Suomalainen Jarkko Hietaniemi on yksi Perl 5:n kehittäjistä.

Vuonna 2001 päätettiin, että Perl 6 ajetaan Parrot-nimisen virtuaalikoneen päällä. Vuonna 2005 molempia, Perl 6 ja Parrotia, kehitetään aktiivisesti.

[muokkaa] Kielen ominaisuuksia

Perlin yleinen rakenne periytyy C-kielestä. Perl on rakenteellinen ohjelmointikieli, sisältäen muuttujia, lausekkeita, kaarisulkein 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 sed:stä. Nämä helpottavat ja selventävät jäsennystä ja tekstin käsittelyä.

Perl 5:een on lisätty moninaisia tietorakenteita ja oliopohjainen ohjelmointimalli. Nämä sisältävät viittaukset, paketit ja oliopohjaisen metodien suorittamisen. Lisäksi siihen lisättiin näkyvyysalue muuttujille. Muuttujien näkyvyysalueet tekevät helpommaksi selkeän koodin kirjoittamisen.

Kaikki Perlin versiot hoitavat automaattisesti datan tyypityksen ja muistin hallinnan. Tulkki tietää tyypin ja muistin määrän mitä objekti tarvitsee; 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 vuotaa muistia, kaataa tulkkia tai sekoittaa sisäistä datan esitystä.

[muokkaa] Datatyypit

Perlissä on kolme sisäärakennettua 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ä taulukkoja, jotka sisältävät skalaareja ja ne 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. Esimerkiksi,

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

Taulukot alkavat '@'-merkillä

@kuukaudet = ("Tammikuu", "Helmikuu");
$toinen = $kuukaudet[1]; # $toinen = Helmikuu
$maara = @k;             # $maara = 2

Ja hajautustaulut alkavat '%'-merkillä

%kuukaudet = (
    "ensimmäinen" => "Tammikuu", 
    "toinen"      => "Helmikuu",
    "kolmas"      => "Maaliskuu"
);
$toinen = $kuukaudet{ "toinen" }; # $toinen = Helmikuu

[muokkaa] Esimerkki

Tiedosto hello.pl:

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

Ensimmäisellä rivillä kerrotaan Unix-järjestelmälle, että ohjelma ajetaan /usr/bin/perl-ohjelmalla.

Toisella rivillä määritellään tiukka syntaksi käyttöön, eli kolmannen ja neljännen rivin muuttujat on pakko määritellä käyttäen my tai our -avainsanaa.

Neljännellä rivillä muuttuja $w interpoloidaan muuttujaan $h, joka tulostetaan rivillä viisi.

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

$ ./hello.pl
Hello world!

Muuten käytetään Perl-tulkkia

$ perl hello.pl
Hello world!

[muokkaa] Katso myös

[muokkaa] Aiheesta muualla

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu