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 (programmeertaal) - Wikipedia

Perl (programmeertaal)

Van Wikipedia

  Perl
{{{screenshot}}}
Perl

Ontwikkelaar Larry Wall
Meest recente versie 5.8.8 / 31 januari 2006
Laatse bèta versie {{{laatste_beta_versie}}} / {{{laatste_beta_releasedatum}}}
Besturingssysteem alle Unixsoorten en Microsoft Windows
Categorie Programmeertaal
Licentie GPL
Website www.perl.org

Perl (Practical Extraction and Report Language) is een programmeertaal ontworpen door Larry Wall die eigenschappen van C, sed, AWK en de UNIX-shell samenvoegde. Larry had een programma nodig dat informatie uit tekstbestanden haalde en in rapportvorm presenteerde. Versie 1.0 van Perl werd in 1987 in de nieuwsgroep comp.sources.misc gepost.

Tegenwoordig worden met Perl applicaties gebouwd voor uiteenlopende gebieden als websites, databases of de bio-informatica. Perl wordt tevens veel gebruikt bij het onderhouden van systemen en netwerken, daarom wordt Perl The Swiss army knife of programming languages (het Zwitsers zakmes onder de programmeertalen) genoemd.

Perl is een scripttaal met uitgebreide regular expression-mogelijkheden en er kan met Perl object-georiënteerd, procedureel of zelfs functioneel geprogrammeerd worden.

Perl wordt veel samen met CPAN, een grote verzameling van vrij te verkrijgen Perlmodules, gebruikt. Perl wordt door middel van POD gedocumenteerd.

Perl is vrije software, uitgebracht onder de Artistic License en GPL.

Perl draait op de meeste besturingssystemen. Op UNIX-systemen wordt Perl standaard geïnstalleerd. Ook bestaat er een versie voor het Windowsplatform.

Inhoud

[bewerk] De kracht van Perl

Perl is krachtig in het manipuleren van tekstbestanden door middel van korte en bondige opdrachten. In de volgende twee voorbeelden worden tekstbestanden met Perl-oneliners aangepast.

Voorbeeld 1: Converteer file met naam myfile van UNIX- naar DOS-formaat.

perl -i -pe 's/\n/\r\n/' myfile

Voorbeeld 2: Plaats de string "#!/usr/bin/perl" bovenaan iedere file met extensie '.pl'.

perl -i -ple 'print q{#!/usr/bin/perl} if $. == 1; close ARGV if eof' *.pl

In voorbeeld 3 wordt gedemonstreerd hoe er met de uit CPAN afkomstige module LWP (the World Wide Web Library for Perl) een webpagina wordt opgehaald.

Voorbeeld 3: Haal de hoofdpagina van nl.wikipedia.org op.

 require LWP::UserAgent;

 my $ua = LWP::UserAgent->new;

 #$ua->proxy("http", "http://ProxyIP:ProxyPort/"); 

 my $response = $ua->get('http://nl.wikipedia.org/'); # haal de hoofdpagina op

 if ($response->is_success) {

    my $s =  $response->content;
    print $s; # Hoofdpagina wordt afgedrukt;
    # Vervang bovenstaande regel door alle code uit voorbeeld 4 in het geheel om voorbeeld 4 uit te voeren. 

 } else {
    die $response->status_line;
 }

In het vervolg op voorbeeld 3 worden uit de hoofdpagina de weetjes uit de rubriek "Wist je dat..." gehaald en afgedrukt. Hiervoor dient de code op de aangegeven plaats in voorbeeld 3 geplaatst te worden.

Voorbeeld 4: Parse HTML uit de rubriek "Wist je dat...".

 require HTML::TokeParser;
 my $stream = HTML::TokeParser->new( \$s );

 while(my $token = $stream->get_token) {

    if ($token->[0] eq 'T') { # text

            if ($ListItemOk){
                $ListItemStr .= $token->[1];
            }

        } elsif ($token->[0] eq 'S') { # start-tag

            my($tagname, $attr) = @$token[1,2];
            
            if ($tagname eq "li"){
                $ListItemOk = 1;
            }
            
        } elsif ($token->[0] eq 'E') { # end-tag
            my $tagname = $token->[1];

            if ($tagname eq "li"){
                if ($ListItemStr =~ /^\.\.\./){
                    print $ListItemStr . "\n";
                }
                $ListItemOk = 0;
                $ListItemStr = "";
            }
        }
    }
 }

[bewerk] Kritiek op Perl

In Perl worden symbolen als <>, $_ of $a->[1] gebruikt, dit leidt niet-ingewijden bij het lezen van de code af en maakt het begrijpen van de code lastig.

De flexibiliteit van Perl, vaak uitgedrukt als There is more than one way to do it, werkt ook tegen de taal. Bekijk het onderstaande voorbeeld waarin de letters van een string worden omgedraaid met behulp van een reguliere expressie maar eens.

$message = "abcdef";
$message =~ s/(.)(.)(.)(.)(.)(.)/$6$5$4$3$2$1/;
print $message;

Het omkeren van een string kan veel eenvoudiger met de reverse-functie.

$message = "abcdef";
$message = reverse($message);
print $message;

Het wordt Perl echter wel aangerekend dat er meerdere manieren zijn om iets te doen.

[bewerk] Perl leren

Larry Wall was vanaf 1995 tot 2003 in dienst bij de uitgever O'Reilly, die enige zeer populaire Perlboeken heeft uitgegeven. Het dier op de kaft van de boeken van O'Reilly geeft het boek ook meteen een bijnaam, zoals het "Camel Book" voor "Programming Perl".

Titel Omschrijving Bijnaam
Learning Perl Voor programmeurs die Perl willen leren Llama
Learning Perl Objects, References, and Modules Het vervolg op Learning Perl Alpaca
Perl Cookbook Recepten voor alledaagse problemen Ram
Programming Perl Dit is geen boek voor beginners, maar een volledig naslagwerk Camel

"Beginning Perl", overigens niet van O'Reilly, is voor beginners en geeft een grondige introductie die in hoog tempo door de stof van Llama, Camel en Alpaca werkt.

Iedere Perlinstallatie beschikt over uitgebreide documentatie die wordt opgevraagd met de opdracht perldoc.

Zo wordt bijvoorbeeld de documentatie van de functie reverse() opgeroepen:

perldoc -f reverse

Een introductie met:

perldoc perlintro

En een overzicht van alle geïnstalleerde documentatie met:

perldoc perl

Bijeenkomsten van de Perl Mongers zijn een goede manier om ervaringen met Perlprogrammeurs uit te wisselen. Er wordt jaarlijks een meerdaagse Perlconferentie georganiseerd: YAPC.

[bewerk] Perl 6

De huidige versie van Perl is 5, de ontwikkeling van versie 6 is in 2000 begonnen en is in volle gang. De opleverdatum is nog niet bekend, maar

  • Perl 6 zal niet backwards compatible zijn: programma's geschreven onder versie 5 zullen niet onder versie 6 draaien;
  • Perl 6 heeft een hybride typing: er zal static en dynamic typing gebruikt kunnen worden;
  • Perl 6 heeft bij functies standaard formal parameter passing;
  • Perl 6 kent sigil invariance;
  • Perl 6 kent een meer robuust objectmodel;
  • Perl 6 kent een uitbreiding op de regular expressions met de nieuwe naam regexes;
  • Perl 6 kent chained comparisons zoals if C(20) <= $temperature <= C(25) { say "Kamertemperatuur!" };
  • Perl 6 kent lazy evaluation;
  • Perl 6 kent junctions;
  • Perl 6 heeft lispachtige macros;

In plaats van een interpreter zal Perl 6 gebruikmaken van een virtuele machine genaamd Parrot, die ook geschikt is voor andere scripttalen als PHP of Ruby.

[bewerk] Perl in actie

Voorbeelden van populaire vrije Perlsoftware:

[bewerk] Externe links

{{{afb_links}}} Overzicht van programmeertalen {{{afb_rechts}}} {{{afb_groot}}}

Industrieel: Ada - AWK - Assembler - C - C++ - C# - COBOL - F# - Fortran - J# - Java - JavaScript - Lisp - Object Pascal - Pascal - Perl - PHP - Python - Visual Basic

Academisch: Eiffel - Haskell - Logo - ML - Prolog - Scheme - Smalltalk

Historisch: ALGOL - APL - BASIC - Clipper - MUMPS - PL/I - PowerBuilder - Simula

 

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