Perl

El Vikipedio, la libera enciklopedio
Por la komunumo en Sarlando, Germanio, vidu Perl (Sarlando).

Perl estas komputila programlingvo kreita de Larry Wall en oktobro de 1987 kiu prenas propraĵojn de C, sed, awk, ŝela skriptado (sh), kaj malpli de multaj aliaj komputillingvoj. Kvankam la nomo povas esti vidita kiel akronimo en pli ol unu maniero ('Praktika elprena kaj resuma lingvo' estas unu), estas normale literumita en miksita majuskleco kiam temas pri la lingvo kaj minuskleco kiam temas pri la interpretilo. "Nur perl ĝuste traktas Perl-on."

Celoj

Perl estis kreita por esti praktita lingvo por elpreni informojn de tekstaj dosieroj kaj fari resumojn. Unu el ĝiaj motoj estas "Ekzistas pli ol unu maniero per kiu fari ĝin! Alia estas Perl: la svisarmea ĉensegilo de komputillingvoj. Unu deklarita celo estas faciligi facilajn taskojn kaj farebligi malfacilajn taskojn. Ĝia fleksebleco permesas versiojn de multaj programadaj paradigmoj: odondema, funkcia, kaj objektema --- kvankam purismanoj kontraŭstaras la aliron de Perl, kiu preferas konvenon al la programisto super pura lingvosistemigo. Perl havas fortan subtenon por regulesprimoj aŭtomate. Perl estas ofte konsiderata la arĥetipa skripta komputillingvo kaj jam estis nomita "la gluo kiu kunligas la TTT-on", ĉar ĝi estas unu el la plej popularaj CGI komputillingvoj. Ĝia rolo de "glua komputillingvo" povas esti priskribita ĝenerale kiel ĝia kapablo kunligi diversajn kaj malsamajn sistemojn kaj datumstrukturojn kiuj ne estis formitaj por esti kunligitaj.

Perl estas libera programaro, akirebla sub la GPL kaj propra Arta Permesilo (angle, Artistic License, http://www.perl.com/language/misc/Artistic.html). Perl haveblas por la plejparto de operaciumoj, sed estas aparte kutima ĉe Unikso kaj similaj sistemoj, kaj plipopulariĝas ĉe Vindozaj sistemoj. Kiel ekzemplo de funkcianta Perl, ĝis januaro de 2002 la programaro kiu funkciigis Vikipedion estis CGI-skripto verkita en Perl.

Implemento

Grandega kolekto de libere uzeblaj moduloj, de alta matematiko ĝis datumbaza konektado, retumado, kaj pli, povas esti enŝutita de reto de retlokoj nomitaj CPAN. La plejparto de la enhavo de CPAN estas ankaŭ havebla je la Artistic License, GBL, aŭ ambaŭ.

Kvankam Perl havas la plejparton da la iloj kaj facileco de uzo de interpretita lingvo, ĝi ne strikte interpretas kaj plenumas la kodon lineon post lineo. Anstataŭ, Perl unue tradukas tutan programon al meza bitoka kodo (multe kiel en Java), optimigante dum ĝi konvertas, kaj poste plenumas laŭ la bitoka kodo. Eblas traduki perl-programon al bitoka kodo por ŝpari je la traduka paŝo dum postaj faroj, kvankam la "interpretilo" ankoraŭ necesas por plenumi tiun kodon.

La nuna versio 5.8 subtenas Unikodon. Perl 6 estas ĉi tiam prilaborata. Ĝi funkcios per virtuala maŝino nun prilaborata kiel ebla multlingva cela arĥitekturo.

Kontrolaj strukturoj

La bazaj kontrolaj strukturoj unuavide similas al tiuj de C kaj Java komputillingvoj. Tamen ili malsimilas kiam ili kontrolas nur unu instrukcion. Alia diferenco estas ke Perl enkondukas kontrolan strukturon unless, kiu estas nur la malo de kutima kontrola instrukcio if.

Iteracioj

  • se estas pluraj instrukcioj inter { kaj }
while (Bulea esprimo) {
    instrukcio(j)
}
  • se estas nur unu instrukcio (rimarku ke ne estas parentezoj ĉirkaŭ la bulea esprimo)
instrukcio while Bulea esprimo;


do {
    instrukcio(j)
} while (Bulea esprimo);


for (pravalorizado ; finkondiĉo ; alkrementa ordono) {
    instrukcio(j)
}


If-then asertoj

  • Se estas pluraj instrukcioj
if (Bulea esprimo) {
    instrukcio(j)
}
  • se nur unu instrukcio
instrukcio if Bulea esprimo;
  • kun else
if (Bulea esprimo 1) {
    instrukcio(j)
} elsif (Bulea esprimo 2)  {
    instrukcio(j)
} else {
    instrukcio(j)
}

Unless

  • Se estas pluraj instrukcioj
unless (Bulea esprimo) {
    instrukcio(j)
}
  • se nur unu instrukcio
instrukcio unless Bulea esprimo;
  • kun else
unless (Bulea esprimo) {
    instrukcio(j)
} else {
    instrukcio(j)
}

Perl 6

Perl 6 disigos sintaksan analizadon kaj tradukadon kaj plenumadon, pliallogigante la virtualan maŝinon al programistoj kiuj volas transporti aliajn lingvojn al la arĥitekturo.

Parrot estas la runtime de Perl 6, kaj povas esti programita ĉe malalta nivelo per Parrot simbola maŝinkodo. Parrot ekzistas en limigita formo ekde decembro de 2002, kaj malgranda kvanto de lingvoj (Jako, Cola) ekzistas por simple esti 'tradukita' suben al Parrot maŝinkodaj simboloj.

Ekzemploj de kodo

Iuj homoj ŝerce asertas ke Perl signifas "Patologie eklektika rubo-listigilo" pro la multa uzo de signifaj punkciumaj karakteroj en la sintakso de la lingvo, kiel oni povas vidi en la jena ekzemplo por printi saluton:

# Ekzempla Perl-programo
$_ = "Saluton, mondo! La magia nombro estas 234542354.\n";
print;
s/\d+/-1/;
print;

kaj la rezulto:

Saluton, mondo! La magia nombro estas 234542354.
Saluton, mondo! La magia nombro estas -1.

La kvara linio de la ekzemplo montras la uzon de regulesprimoj.

Kiel pri la C, konkursoj pri malfacile legeblaj kodoj estas interesa parto de la Perl-kulturo. Simile al malfacile legebla kodo, sed kun malsama celo, Perl poezio estas la arto de verki poemojn kiuj fakte povas esti tradukitaj de perl. Ĉi tiu arto estas unika al Perl, pro la granda kvanto de anglalingvaj vortoj en la lingvo.

Eksteraj ligiloj

Ŝablono:LigoLeginda Ŝablono:LigoLeginda