Sunteți pe pagina 1din 16

Cuprins

Introducere....................................................................................................................................................3
1. Prezentare general a limbajului Perl.......................................................................................................4
1.2 Primii pai spre limbaj........................................................................................................................5
1.3 Caracteristici principale......................................................................................................................6
2. Modulele Perl............................................................................................................................................7
2.1 Conceptul de pachet............................................................................................................................7
2.2. Conceptul de modul...........................................................................................................................8
2.3 CPAN..................................................................................................................................................8
3. Descrierea programului.............................................................................................................................9
3.1 Funcionaliti realizate de subrutine..................................................................................................9
3.2 Listingul programului:......................................................................................................................11
#!/usr/bin/perl -w....................................................................................................................................11
$i=0; @lista=();.......................................................................................................................................11
open (C, "</home/student/Desktop/teza/lista_adverbe.txt");.................................................................11
$data="*"x 40;........................................................................................................................................11
print "$data\n";........................................................................................................................................11
print " 1 - afisare lista1\n 2 - lista sortata\n 3 - citirea fisierului F2 \n 4 - afisarea tabelei hash \n";......11
$data="*"x 40;........................................................................................................................................11
print "$data\n";........................................................................................................................................11
if(<stdin>==1) {......................................................................................................................................11
while (<C>).............................................................................................................................................11
{$v =$_; if ($v=~m/^de/) { $lista[$i++] = $v ; }} ................................................................................11
chomp(@lista);........................................................................................................................................11
print "\nLista adverbelor ce se incep cu de:\n\n";...................................................................................11
print "@lista\n";}....................................................................................................................................11
$data="*"x 40;........................................................................................................................................11
print "$data\n";........................................................................................................................................11
print " 1 - afisare lista1\n 2 - lista sortata\n 3 - citirea fisierului F2 \n 4 - afisarea tabelei hash \n";......11
$data="*"x 40;........................................................................................................................................11
print "$data\n";........................................................................................................................................11
if(<stdin>==2) {......................................................................................................................................11
print"\n\nLista sortata\n\n";.....................................................................................................................11
@listas = sort (@lista);...........................................................................................................................11
print "@listas\n\n";.................................................................................................................................11
close (C);}...............................................................................................................................................12
$data="*"x 40;........................................................................................................................................12
print "$data\n";........................................................................................................................................12
print " 1 - afisare lista1\n 2 - lista sortata\n 3 - citirea fisierului F2 \n 4 - afisarea tabelei hash \n";......12
$data="*"x 40;........................................................................................................................................12
print "$data\n";........................................................................................................................................12
if(<stdin>==3) {......................................................................................................................................12
open fisier2, ">fisier2.txt";.....................................................................................................................12
print fisier2 "@listas\n\n";......................................................................................................................12
close fisier2;}..........................................................................................................................................12

print "\ncontinutul fisierului2 \n\n";........................................................................................................12


open (C, "</home/student/Desktop/teza/fisier2.txt");.............................................................................12
while (<C>).............................................................................................................................................12
{print;} ...................................................................................................................................................12
$data="*"x 40;........................................................................................................................................12
print "$data\n";........................................................................................................................................12
print " 1 - afisare lista1\n 2 - lista sortata\n 3 - citirea fisierului F2 \n 4 - afisarea tabelei hash \n";......12
$data="*"x 40;........................................................................................................................................12
print "$data\n";........................................................................................................................................12
if(<stdin>==4) {......................................................................................................................................12
$i=1; foreach (@listas)............................................................................................................................12
{
$h{$i} = $_;..................................................................................................................................12
$i++; } ............................................................................................................................................12
open (fisier3, ">fisier3.txt");...................................................................................................................12
while (($value, $key) = each(%h)).........................................................................................................12
{print fisier3 " cheia=$key", " valoarea=$value\n"} .............................................................................12
#foreach $v(keys%h)#afiseaza fiecare cheie..........................................................................................12
#{print "$v\n"}........................................................................................................................................12
foreach $value (sort {$h{$a} cmp $h{$b}} keys %h) ..........................................................................13
{print fisier3 "$value $h{$value}\n";}...................................................................................................13
close fisier3;............................................................................................................................................13
print "\ncontinutul fisierului3 - tabela hash urmatoarea: \n\n";..............................................................13
open (C, "</home/student/Desktop/teza/fisier3.txt");.............................................................................13
while (<C>).............................................................................................................................................13
{print;} ...................................................................................................................................................13
close(C);..................................................................................................................................................13
}...............................................................................................................................................................13
3.3 Afiarea rezultatelor..........................................................................................................................14
Concluzie....................................................................................................................................................15
Bibliografie.................................................................................................................................................16
1.Sabin Buraga, Introducere n Programare Perl, 2005..............................................................................16
2.Les dossiers Linux, Avril/Mai/Juin 2004, France...................................................................................16
3.http://www.scribd.com/doc/14659527/Limbajul-PERL..........................................................................16
4.http://cpan.perl.org/index.html................................................................................................................16

Introducere
Creat iniial pentru prelucrarea sofisticat a informaiilor textuale, Perl (Practical Extraction and
Report Language) l are ca printe pe Larry Wall, n decursul timpului la dezvoltarea limbajului
contribuind i ali numeroi programatori. Distribuit gratuit, Perl a devenit favoritul administratorilor de
sistem i al programatorilor de aplicaii Web, ns poate fi utilizat asemeni altui limbaj general. Ca i
Linux, Perl a crescut n mediul prielnic al Internetului. Pe data de 18 decembrie 2008 s-au mplinit 21 ani
de la apariia limbajului. n curs de dezvoltare este versiunea Perl 6 a limbajului.
Iniial, limbajul a fost conceput special pentru mediile UNIX, mprumutnd o serie de faciliti
oferite de shell-urile i utilitarele standard i pstrnd filosofia de baz a UNIXului, dar n prezent Perl
este disponibil pentru toate platformele actuale (e.g. Mac OS, Windows sau OS/2).
n proiectarea limbajului s-au avut n vedere urmtoarele principii:
lucrurile simple s se poat realiza uor, iar cele complexe s nu fie imposibil de implementat;
exist mai multe modaliti de realizare a unui program, n funcie de gradul de cunoatere a
limbajului de ctre dezvoltatorul acelui program.
Drept caracteristici importante ale limbajului se pot enumera:
modularitatea
Perl ofer suport pentru mai multe paradigme de programare, ca de exemplu cea procedural i cea
orientat-obiect; limbajul poate fi extins prin intermediul aa numitelor module, punndu-se la dispoziie
un numr impresionant de module standard;
portabilitatea
Programele Perl se pot executa fr modificri pe orice platform;
expresivitatea i puterea
Limbajul dispune de mecanisme puternice pentru manipularea datelor, prin intermediul expresiilor
regulate i a tablourilor; de asemenea, Perl poate fi folosit ca limbaj de sistem pentru lucrul cu entiti ale
sistemului de operare (fiiere, dispozitive, procese, socket-uri);
viteza de dezvoltare a aplicaiilor
Ciclul compilare-execuie-depanare se poate realiza i itera rapid; Perl nu ofer un interpretor clasic,
ci un compilator-interpretor.
Fiind gratuit i posednd numeroase mijloace de documentare online, Perl poate fi folosit n special
pentru dezvoltarea rapid de aplicaii de administrare a sistemului de operare i destinate Web-ului,
reprezentnd un mediu ideal pentru conceperea script-urilor CGI.
Mai mult, anumite servere Web (e.g., Apache) includ interpretoare Perl interne.
3

1. Prezentare general a limbajului Perl


1.1 Disponibilitate i documentaii
Mediul Perl se poate obine de pe Internet, via FTP sau HTTP, prin intermediul locaiilor CPAN
(Comprehensive Perl Archive Network). Principala surs este ftp://ftp.funet.fi, dar se pot folosi i alte
locaii, listate la http://www.perl.com/CPAN/.
De asemenea, orice distribuie actual de Linux include interpretorul i manualele standard Perl.
Pentru Windows, platforma Perl cea mai popular este ActivePerl, disponibil i pe CD-ul volumului S.
Buraga et al., Programare Web n bash i Perl, Polirom, Iai, 2002: http://www.infoiasi.ro/~cgi/.
Pentru a genera codul executabil al interpretorului Perl din sursele preluate din Internet, pentru un mediu
UNIX (Linux) va trebui s scriem urmtoarele linii de comenzi de la prompt-ul sistemului, ca utilizatori
cu drepturi de root:
(infoiasi)$ ./configure # pentru configurare automata
(infoiasi)$ ./Configure # pentru configurare manuala
(infoiasi)$ make
(infoiasi)$ make test
(infoiasi)$ make install
Perl include o serie de documentaii online care pot fi parcurse prin intermediul binecunoscutei
comenzi man (ncercai, de exemplu, man perl). Pentru anumite detalii sau documentaii referitoare la
modulele Perl, se poate folosi comanda perldoc. Astfel, dac dorim s aflm amnunte despre funcia
standard Perl printf vom da perldoc printf. De asemenea, putem recurge la opiunea -f pentru a afla
detalii despre o funcie (e.g. perldoc -f connect).
Paginile de manual cele mai importante sunt:
-

perl - o trecere n revist a documentaiilor Perl;

perlfaq - rspunsuri la ntrebrile puse frecvent despre Perl (Frequently Asked Questions - FAQ);
- perlsyn - sintaxa limbajului (vezi i perlrun execuia script-urilor Perl, perldebug
depanarea programelor, perlstyle - ghid de stil, perlfunc - funcii predefinite, perlsub subrutinele Perl);
- perldata - structurile de date Perl (vezi i perlre - expresii regulate, perldsc - introducere n
structuri de date, perllol - liste de liste, perlref - referine, perlvar - variabile predefinite);

perlop - operatorii i precedena lor;


- perlmod - modulele Perl (vezi i perlmodlib);
4

- perlobj - suport pentru programarea obiectual (vezi i perltool - tutorial privind programarea
orientat-obiect, perlbot - exemple de obiecte).
Pentru a avea acces la una dintre documentaiile dorite, este suficient s tastm, de exemplu, man
perlsyn. Versiunile mai vechi de Perl puneau la dispoziie documentaia n format text (Plain Old
Documentation - POD). Pentru amnunte, consultai man pod, iar pentru a o converti n alte formate se
pot folosi comenzile pod2man, pod2html sau pod2text.
De asemenea, cititorii interesai pot parcurge articolele postate pe grupurile de tiri comp.lang.perl
sau documentaiile n format hipertext de la http://www.perl.com/perl/.

1.2 Primii pai spre limbaj


Spre deosebire de alte limbaje, Perl este un limbaj interpretat, n sensul c instruciunile Perl nu sunt
convertite n cod executabil (nu se genereaz un fiier executabil, spre a fi rulat independent de
interpretorul Perl). Vom spune despre programele Perl c sunt script-uri, un limbaj de tip script fiind
destinat s prelucreze, s automatizeze i s integreze facilitile oferite de un anumit sistem (e.g., sistem
de operare, server Web, navigator Web, aplicaie de birou). Alte limbaje de tip script sunt bash, Python,
Tcl/Tk ori JavaScript.
Perl nu pune la dispoziie un interpretor clasic, n sensul c un script Perl nu este interpretat linie cu
linie, ci n prealabil va fi compilat complet, de o component numit motor (engine) Perl, rezultnd un
limbaj intermediar, realizndu-se diverse optimizri i raportndu-se posibilele erori/avertismente
sintactice sau semantice. Acest cod intermediar, n cazul n care nu apar erori, va fi dat spre execuie
interpretorului Perl.
Avnd n vedere c Perl este un interpretor (similar shell-ului bash), prima linie a unui fiier surs
Perl va trebui s fie urmtoarea:
#!/usr/bin/perl
Aceast linie indic ncrctorului sistemului de operare locaia interpretorului Perl (s-ar putea n
unele cazuri s difere de directorul /usr/bin, dai whereis perl pentru a vedea unde a fost instalat). Ea va fi
ignorat n alte medii diferite de UNIX (Linux), fiind considerat simplu comentariu.
Pentru a putea fi executat, fiierul memornd script-ul Perl va trebui s aib permisiunea de execuie
setat prin comanda chmod.

Figura 1.1 Modalitatea de execuie a unui script Perl

1.3 Caracteristici principale


Printre caracteristicile principale ale limbajului sunt:
sintaxa - limbajul Perl are o sintax inspirat din C, delimitatorii fiind spaiile albe. Dup cum era
de ateptat, Perl este case sensitive, iar comentariile sunt precedate de caracterul "#". Fiecare instruciune
a limbajului este terminat de ";", iar parantezele acolade sunt delimitatori de bloc de instruciuni.
Recomandm indentarea construciilor sintactice Perl i utilizarea ct mai multor comentarii pentru ca
programele s poat fi uor de parcurs i de neles de ctre cititor.
tipuri de date i variabile - prima linie a programului declar dou tablouri asociative care vor stoca
elementele gsite i respectiv numrul de apariii ale acestora: my %elemente, %aparitii;
Reamintim faptul c o variabil reprezint o zon (de obicei, contigu) de memorie n care se
stocheaz o valoare de un anumit tip, zonei fiindu-i asociat un nume (identificator al acelei variabile).
Aceast zon poate fi public sau privat, permanent sau temporar pe parcursul execuiei unui
program. Numele unei variabile trebuie s nceap cu o liter i poate conine caracterele alfa-numerice i
"_".
Tipurile de date n Perl sunt fie scalare (simple) sau compuse (complexe).
Ca tipuri scalare se pot aminti ntregii cu semn i numerele flotante (dubl precizie). Tot drept tip
scalar se consider tipul desemnnd iruri de caractere. Fiind un limbaj interpretat, Perl nu impune
declararea variabilelor, ele fiind automat iniializate, n funcie de contextul utilizrii. Implicit, se
consider c o variabil numeric este iniializat cu 0, iar un ir de caractere cu valoarea "" (ir vid).
irurile de caractere sunt delimitate de apostrofuri sau de ghilimele. Ca i n C, putem folosi aa-numitele
caractere escape, ca de exemplu "\n" (linie nou) sau "\t" (caracterul tab). Pentru a avea acces la valoarea
unei variabile scalare, vom prefixa numele ei cu caracterul "$".
Drept tipuri complexe avem la dispoziie:
tablourile indexate sunt liste ordonate de scalari, elementele unei liste fiind accesibile prin
intermediul unui indice numeric; numele unui vector va fi precedat de caracterul "@".
6

Elementele delimitate de "(" i ")" compun o list. Accesarea unui element se va realiza astfel
(caracterul "@" este nlocuit cu "$" pentru c selectm un element scalar).
tablourile asociative (hash) sunt tablouri n care indicele numeric este substituit de un ir de
caractere. Le putem vedea ca perechi (cheie, valoare), cheile sau valorile nefiind ordonate. Tablourile
asociative vor fi accesate precednd numele lor cu caracterul "%". O cheie trebuie s fie unic, dar
valorile cheilor pot fi duplicate.
Conversia din tabel indexat n tabel asociativ i invers se poate realiza tot prin intermediul atribuirii
obinuite. Asupra unui tablou asociativ nu mai putem aplica funciile push(), pop(), shift() sau unshift(), dar
putem folosi funciile keys() i values() pentru a obine lista cheilor i respectiv cea a valorilor unui tablou
asociativ. Aceste liste pot fi iterate cu ajutorul instruciunii foreach. Funcia standard each() returneaz o
pereche cheie-valoare putnd fi folosit de asemenea la parcurgerea unui tablou asociativ.
Pentru sortarea unui tablou, vom apela funcia sort(). Aceast funcie permite precizarea unei funcii
de comparaie a elementelor definit de utilizator. Inversarea unei liste de elemente se va realiza cu
reverse().

2. Modulele Perl

2.1 Conceptul de pachet


Modulele (pachetele) Perl reprezint uniti de cod precompilat, ncapsulnd diferite funcionaliti
oferite programatorilor.
Un pachet Perl poate fi considerat drept implementarea unei clase pe care o putem instania n cadrul
unui script. Subrutinele incluse ntr-un pachet pot juca, de asemenea, rolul de metode, existnd
posibilitatea definirii de constructori i destructori. Mai mult, se ofer suport pentru derivarea unei
metode aparinnd unui pachet, astfel nct pachetele Perl pot fi ierarhizate. Mai multe pachete pot fi
grupate n biblioteci.
Vom referi variabilele din alte pachete prefixnd identificatorul variabilei respective cu numele
pachetului urmat de "::", dup cum se poate observa din urmtorul exemplu:
$intrare = $main::STDIN;

La fel, pentru metode:


$imagine = new GD::Image(174, 333);

Dac nu este specificat numele pachetului, se consider implicit pachetul main. Astfel, construcia
$::var este

echivalent cu $main::var.

Dac dorim s accesm metode sau date-membru definite ntr-un pachet derivat din altul vom
specifica numele ambelor pachete: $Pachet::Subpachet::variabila
7

2.2. Conceptul de modul


Un modul reprezint un pachet public definit ntr-un fiier .pm cu scopul de a fi reutilizat ulterior.
Modulele Perl vor fi incluse n program, spre a fi folosite, prin construcia:
use Modul;

La fel, use Modul (); este echivalent cu require Modul;, dar se recomand utilizarea lui use n favoarea
unui require.
Pentru mai multe detalii, cititorul poate consulta paginile de manual pentru perlmod i perlxs.
Sunt puse la dispoziie mai multe module standard (disponibile n orice distribuie Perl actual),
dintre care se pot meniona:
Carp (pentru controlul erorilor i avertismentelor);
Config (pentru acces la opiunile de configurare);
CGI (pentru generarea facil de script-uri CGI);
Env (pentru accesarea variabilelor de mediu);
ExtUtils::Embed (pentru includerea de cod Perl n programele C);
File::Find (pentru traversarea recursiv a unui arbore de directoare);
File::Handle (pentru manipularea fiierelor folosind descriptori de fiier);
File::Path (pentru operaii cu directoare);
Math::Complex (pentru prelucrarea numerelor complexe);
POSIX (pentru asigurarea interfeei cu standardul POSIX IEEE 1003.1);
Search::Dict (pentru cutarea unei chei ntr-un fiier dicionar);
Socket (pentru realizarea de operaiuni cu socket-uri);
Time::Local (pentru acces la timpul local).
Pentru a gsi toate modulele instalate n sistem (inclusiv cele care nu au documentaii sau au fost
instalate n afara distribuiei standard) putem folosi urmtoarea linie de comenzi:
find `perl -e 'print "@INC"'` -name "*.pm" -print

n mod normal, fiecare modul posed propria lui documentaie, accesibil prin intermediul comenzii
man

din UNIX. Se poate utiliza i comanda perldoc.


2.3 CPAN

Succesul limbajului Perl rezid, n principal, din posibilitatea de a extinde limbajul cu noi
funcionaliti oferite de module. n afara modulelor din distribuiile Perl standard, exist o colecie
global a tuturor materialelor publice referitoare la Perl, colecie referit sub denumirea CPAN

(Comprehensive Perl Archive Network). CPAN ofer un numr impresionant de module grupate pe
urmtoarele categorii:
extensii de limbaj i unelte de documentare;
suport pentru dezvoltare de programe/module;
interfee (la nivel sczut sau ridicat) cu sistemul de operare;
comunicarea ntre procese, n reea i controlul dispozitivelor (e.g., modemuri);
tipuri de date i conversii;
interfee cu bazele de date;
interfee cu utilizatorul;
interfee cu alte limbaje de programare;
procesarea fiierelor i sistemelor de fiiere;
procesarea caracterelor;
procesarea fiierelor de configuraie i a parametrilor n linia de comand;
suport pentru diverse limbi i alfabete (internaionalizare);
autentificare, securitate i criptare;
suport pentru pota electronic i grupurile de tiri;
suport pentru Web (HTML, HTTP, CGI, XML etc.);
utilitare pentru daemoni;
suport pentru arhivarea i compresia datelor;
procesarea informaiilor grafice;
controlul fluxului (excepii, erori etc.);
procesarea fluxurilor de date i a fiierelor;
altele.
Pentru

un

listing

al

tuturor

locaiilor

Internet

referitoare

la

CPAN,

consultai

http://www.perl.com/perl/.

3. Descrierea programului
3.1 Funcionaliti realizate de subrutine
1. Crearea fiierului F1 care va conine textul introdus de la tastatur. (Adverbe)
Am creat fiierul lista_adverbe.txt, n care am introdus un numr oarecare de adverbe n limba romn.

2. Citirea i prelucrarea fiierului conform sarcinii individuale. Am ales selectarea adverbelor ce au


prefixul de.
open (C, "<C:/Perl/bin/lista_adverbe.txt");
print "Iata textul:\n";
{$v =$_; if ($v=~m/^de/) { print "$v\n"; $lista[$i++] = $v ; } }

3. Formarea listei L1 n memoria operativ n care se vor pstra rezultatele din p.2.
chomp(@lista);
print "Lista formata dupa selectare:\n";
print "@lista\n";

4. Prelucrarea listei L1 (sortarea n ordinea lexicografic a cuvintelor).


print"Lista sortata\n";
@listas = sort (@lista);
print "@listas\n";

5. nregistrarea listei prelucrate n fiierul F2.


open fisier2, ">fisier2.txt";
print fisier2 "@listas\n\n";

6. Citirea fiierului F2 n tabela H1 (valorile se introduc de utilizator).


$i=1; foreach (@listas)
{ $h{$i} = $_; $i++; }

7. Prelucrarea tabelei H1 (afiarea cheilor care corespund valorilor m/^de/).


foreach $v(keys%h) #afiseaza fiecare cheie

10

{print "$v\n"}

8. nregistrarea n fiierul F3 a rezultatelor obinute n punctul 7.


while (($key, $value) = each(%h))
{print fisier3 " cheia=$key"," valoarea=$value\n"}

9. Ieire din program.

3.2 Listingul programului:


#!/usr/bin/perl -w
$i=0; @lista=();
open (C, "</home/student/Desktop/teza/lista_adverbe.txt");
$data="*"x 40;
print "$data\n";
print " 1 - afisare lista1\n 2 - lista sortata\n 3 - citirea fisierului F2 \n 4 - afisarea tabelei hash \n";
$data="*"x 40;
print "$data\n";
if(<stdin>==1) {
while (<C>)
{$v =$_; if ($v=~m/^de/) { $lista[$i++] = $v ; }}
chomp(@lista);
print "\nLista adverbelor ce se incep cu de:\n\n";
print "@lista\n";}
$data="*"x 40;
print "$data\n";
print " 1 - afisare lista1\n 2 - lista sortata\n 3 - citirea fisierului F2 \n 4 - afisarea tabelei hash \n";
$data="*"x 40;
print "$data\n";
if(<stdin>==2) {
print"\n\nLista sortata\n\n";
@listas = sort (@lista);
print "@listas\n\n";

11

close (C);}
$data="*"x 40;
print "$data\n";
print " 1 - afisare lista1\n 2 - lista sortata\n 3 - citirea fisierului F2 \n 4 - afisarea tabelei hash \n";
$data="*"x 40;
print "$data\n";
if(<stdin>==3) {
open fisier2, ">fisier2.txt";
print fisier2 "@listas\n\n";
close fisier2;}
print "\ncontinutul fisierului2 \n\n";
open (C, "</home/student/Desktop/teza/fisier2.txt");
while (<C>)
{print;}

$data="*"x 40;
print "$data\n";
print " 1 - afisare lista1\n 2 - lista sortata\n 3 - citirea fisierului F2 \n 4 - afisarea tabelei hash \n";
$data="*"x 40;
print "$data\n";
if(<stdin>==4) {
$i=1; foreach (@listas)
{

$h{$i} = $_;
$i++; }

open (fisier3, ">fisier3.txt");

while (($value, $key) = each(%h))


{print fisier3 " cheia=$key", " valoarea=$value\n"}
#foreach $v(keys%h)#afiseaza fiecare cheie
#{print "$v\n"}

12

foreach $value (sort {$h{$a} cmp $h{$b}} keys %h)


{print fisier3 "$value $h{$value}\n";}
close fisier3;
print "\ncontinutul fisierului3 - tabela hash urmatoarea: \n\n";
open (C, "</home/student/Desktop/teza/fisier3.txt");
while (<C>)
{print;}
close(C);
}

13

3.3 Afiarea rezultatelor

14

Concluzie
Perl este un limbaj de programare general iniial dezvoltat pentru manipularea de text i n prezent
folosit pentru o gam larg de aplicaii inclusiv administrarea de sisteme, dezvoltare web, aplicaii de
reea, interfee grafice i altele.
Limbajul intenioneaz s fie mai degrab practic - uor de folosit, eficient. Caracteristicile principale
sunt uurina de utilizare, suport pentru programare procedural i obiectual, are integrat un puternic
suport pentru procesarea de text i o colecie mare de module provenite de la teri.
Modulele (pachetele) Perl reprezint uniti de cod precompilat, ncapsulnd diferite funcionaliti
oferite programatorilor.
Un pachet Perl poate fi considerat drept implementarea unei clase pe care o putem instania n cadrul
unui script. Subrutinele incluse ntr-un pachet pot juca, de asemenea, rolul de metode, existnd
posibilitatea definirii de constructori i destructori. Mai mult, se ofer suport pentru derivarea unei
metode aparinnd unui pachet, astfel nct pachetele Perl pot fi ierarhizate.
Succesul limbajului Perl rezid, n principal, din posibilitatea de a extinde limbajul cu noi
funcionaliti oferite de module. n afara modulelor din distribuiile Perl standard, exist o colecie
global a tuturor materialelor publice referitoare la Perl, colecie referit sub denumirea CPAN
(Comprehensive Perl Archive Network). CPAN ofer un numr impresionant de module grupate pe
categorii.

15

Bibliografie
1. Sabin Buraga, Introducere n Programare Perl, 2005
2. Les dossiers Linux, Avril/Mai/Juin 2004, France
3. http://www.scribd.com/doc/14659527/Limbajul-PERL
4. http://cpan.perl.org/index.html
5. http://www.dil.univ-mrs.fr/~chris/indexperl.html

16