hulpmiddelenin andere talen
|
Perl (programmeertaal)
Perl (Practical Extraction and Report Language) is een programmeertaal ontworpen door Larry Wall die eigenschappen van C, sed, AWK en de UNIX-shell in zich verenigt. In de jaren '90 was Perl de meestgebruikte taal voor dynamische websites, databases en 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 versies voor het Windowsplatform.
[bewerk] De kracht van PerlPerl 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 ("print $s;") door de gehele code uit voorbeeld 4
# om voorbeeld 4 uit te voeren.
} else {
die $response->status_line;
}
In vervolg op voorbeeld 3 worden uit de hoofdpagina de weetjes uit de rubriek "Wist je dat..." gehaald en afgedrukt. Hiervoor dient de gehele code van voorbeeld 4 op de in voorbeeld 3 aangegeven plaats 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
[bewerk] Perl lerenLarry 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".
"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] Geschiedenis van Perl[bewerk] Perl 1.0Perl is ontstaan als een rapportagetool: een programma dat informatie uit tekstbestanden haalt en in rapportvorm presenteert. Larry Wall postte versie 1.0 in 1987 in de nieuwsgroep comp.sources.misc. [bewerk] Perl 2 t/m 4Al snel groeide Perl uit tot een algemene scripttaal voor Unixsystemen, die voor tekstbewerking de sterke punten van AWK en de Bourne-shell in zich verenigde. Dit was een grote stap vooruit ten opzichte van shellscripts, die voor de meest eenvoudige functies allerlei externe programma's moeten aanroepen. Ook werden de meeste system calls en standard library-functies ingebouwd, zodat Perl qua uitdrukkingskracht vergelijkbaar werd met C: ook het low-level programmeren van bv. multiprocessing en procescommunicatie via sockets en netwerken was nu mogelijk. Ook werd de package ingevoerd, een eenvoudige manier voor namespacing waarmee losse modules gemaakt konden worden. Ondersteuning voor datastructuren bleef beperkt: alleen de array, de associatieve array en globbing, een primitief reference-mechanisme. De belangrijkste toepassingen bleven batchgewijze tekstbewerking en scripts voor systeembeheer. Nieuwe releases bleven uitkomen tot 4.036. [bewerk] Perl 5De belangrijkste verbeteringen in Perl 5:
Hierdoor kon CPAN ontstaan, de centrale repository van vrijelijk herbruikbare Perl-bibliotheken. Nieuwe functionaliteit werd nu niet langer aan de taal toegevoegd, maar als CPAN-module beschikbaar gesteld. Perl werd nu zeer populair als "plak"-taal om systemen met elkaar te verbinden. Vanaf de opkomst van het world wide web tot eind jaren negentig was het de belangrijkste taal voor webapplicaties. Later werd PHP populairder, wat opmerkelijk is, omdat het erg veel op Perl lijkt, ongeveer dezelfde voor- en nadelen heeft en ongeveer dezelfde ontwikkeling heeft doorgemaakt, alleen een paar jaar later. In 2000 werd de volgende versie van Perl, versie 6, gestart. Deze maakt onder meer betere (statische) typering mogelijk. Van versie 5 komen wel zo nu en dan onderhoudsreleases uit met kleine verbeteringen. [bewerk] Perl 6De ontwikkeling van versie 6 is in 2000 begonnen en is in volle gang. De opleverdatum is nog niet bekend, maar
In plaats van een interpreter zal Perl 6 gebruikmaken van een virtuele machine genaamd Parrot, die ook geschikt is voor andere scripttalen zoals PHP of Ruby. [bewerk] Perl in actieVoorbeelden van populaire vrije Perlsoftware:
[bewerk] Externe links
|
||||||||||||||||||||||||||||||||||||||||||||||