PERL(1perl) Ghid de referință pentru programatorii Perl PERL(1perl)

perl - interpretul limbajului Perl 5

perl-sTtuUWX ]
-hv ] [ -V[:variabile-configurare] ]
-cw ] [ -d[t][:depanator] ] [ -D[număr/listă] ]
-pna ] [ -Fmodel ] [ -l[octal] ] [ -0[octal/hexazecimal] ]
-Idirector ] [ -m[-]modul ] [ -M[-]'modul...' ] [ -f ]
-C [număr/listă]
-S ]
-x[director] ]
-i[extensie] ]
[ [-e|-E'comandă' ] [ -- ] [ fișier-program ] [ argument ]...

Pentru mai multe informații despre aceste opțiuni, puteți rula «perldoc perlrun».

Programul perldoc vă oferă acces la toată documentația care vine cu Perl. Puteți obține mai multă documentație, tutoriale și asistență din partea comunității în internet la https://www.perl.org/.

Dacă sunteți nou în Perl, ar trebui să începeți prin a rula «perldoc perlintro», care este o introducere generală pentru începători și care vă oferă informații de bază pentru a vă ajuta să navigați în restul documentației ample a Perl. Rulați «perldoc perldoc» pentru a afla mai multe lucruri pe care le puteți face cu perldoc.

Pentru a facilita accesul, manualul Perl a fost împărțit în mai multe secțiuni.

perl                Prezentare generală Perl (această secțiune)
perlintro           Introducere în Perl pentru începători
perlrun             Execuție și opțiuni Perl
perltoc             Tabla de cuprins a documentației Perl

perlreftut          Referințe Perl - scurtă introducere
perldsc             Structuri de date Perl - introducere
perllol             Structuri de date Perl: matrice de matrici
perlrequick         Expresii regulate Perl - start rapid
perlretut           Tutorial de expresii regulate Perl
perlootut           Tutorial OO Perl pentru începători
perlperf            Tehnici de performanță și optimizare Perl
perlstyle           Ghid de stil Perl
perlcheat           Foaie de consultații Perl
perltrap            Capcane Perl pentru cei neavizați
perldebtut          Perl tutorial de depanare
perlfaq             Întrebări frecvente despre Perl
perlfaq1            Întrebări generale despre Perl
perlfaq2            Obținerea și învățarea lui Perl
perlfaq3            Instrumente de programare
perlfaq4            Manipulare de date
perlfaq5            Fișiere și formate
perlfaq6            Expresii regulate
perlfaq7            Probleme legate de limbajul Perl
perlfaq8            Interacțiunea sistemului
perlfaq9            Rețele

perlsyn             Sintaxa Perl: declarații, enunțuri, comentarii
perldata            Structuri de date Perl  perlop Expresii Perl: operatori, precedență, șiruri literale
perlsub             Subrutine Perl  perlfunc Funcții integrate Perl
  perlopentut       Tutorial Perl open()
  perlpacktut       Tutorial Perl pack() și unpack()
perlpod             Documentație veche simplă Perl
perlpodspec         Specificație a formatului de documentație veche simplă Perl
perldocstyle        Ghid de stil Perl pentru documentele de bază
perlpodstyle        Ghid de stil POD Perl
perldiag            Mesaje de diagnosticare Perl
perldeprecation     Deprecieri Perl
perllexwarn         Avertizările Perl și controlul acestora
perldebug           Depanarea Perl
perlvar             Variabile predefinite Perl
perlre              Expresii regulate Perl, restul poveștii
perlrebackslash     Secvențe „backslash” de expresii regulate Perl
perlrecharclass     Clase de caractere pentru expresii regulate Perl
perlreref           Referință rapidă de expresii regulate Perl
perlref             Referințe Perl, restul poveștii
perlform            Formate Perl
perlobj             Obiecte Perl
perltie             Obiecte Perl ascunse în spatele unor variabile simple
  perldbmfilter     Filtre DBM Perl
perlclass           Sintaxa claselor Perl
perlipc             Comunicare interprocese Perl
perlfork            Informații despre Perl fork()
perlnumber          Semantica numerelor Perl
perlthrtut          Tutorial pentru firele Perl
perlport            Ghid de portabilitate Perl
perllocale          Suport localizare Perl
perluniintro        Introducere Perl Unicode
perlunicode         Suportul Perl Unicode
perlunicook         Carte de rețete Perl Unicode
perlunifaq          Întrebări frecvente Perl Unicode
perluniprops        Indexul proprietăților Unicode în Perl
perlunitut          Tutorial Perl Unicode
perlebcdic          Considerații pentru utilizarea Perl pe platforme EBCDIC
perlsec             Securitatea Perl
perlsecpolicy       Politica de gestionare a rapoartelor de securitate Perl
perlmod             Module Perl: cum funcționează acestea
perlmodlib          Module Perl: cum se scriu și se utilizează
perlmodstyle        Module Perl: cum se scriu module cu stil
perlmodinstall      Module Perl: cum se instalează din CPAN
perlnewmod          Module Perl: pregătirea unui nou modul pentru distribuție
perlpragma          Module Perl: scrierea unei pragme de utilizator
perlutil            Ustensilele incluse în distribuția Perl
perlfilter          Filtrele de sursă Perl
perldtrace          Suportul Perl pentru DTrace
perlglossary        Glosar Perl

perlembed           Modalități Perl de a încorpora perl în aplicația C sau C++
perldebguts         Depanare Perl: trucuri și sfaturi
perlxstut           Tutorial Perl XS
perlxs              Interfață de programare a aplicațiilor Perl XS
perlxstypemap       Instrumente de conversie a tipurilor Perl XS C/Perl
perlclib            Interacțiunea cu funcțiile standard ale bibliotecii C
perlguts            Funcții interne Perl pentru cei care fac extensii
perlcall            Convenții de apelare Perl din C
perlmroapi          Interfață modul de rezolvare a metodelor Perl
perlreapi           Interfață modul de expresie regulată Perl
perlreguts          Componente interne ale motorului de expresie regulată Perl
perlclassguts       Componente interne ale sintaxei claselor
perlapi             Listarea API Perl (autogenerată)
perlintern          Funcții interne Perl (autogenerate)
perliol             API C pentru implementarea lui Perl a IO în Layers
perlapio            Interfața de abstractizare IO internă Perl
perlhack            Ghidul hackerilor Perl
perlsource          Ghidul arborelui sursă Perl
perlinterp          Prezentare generală a sursei interpretului Perl și a modului în care funcționează
perlhacktut         Parcurgerea creării unui simplu patch de cod C
perlhacktips        Sfaturi pentru hacking de cod C din nucleul Perl
perlpolicy          Politici de dezvoltare Perl
perlgov             Regulile de guvernare Perl
perlgit             Utilizarea git cu depozitul Perl

perlhist            Înregistrări de istoric Perl
perldelta           Modificări Perl față de versiunea anterioară
perl5420delta       Modificări Perl în versiunea 5.42.0
perl5402delta       Modificări Perl în versiunea 5.40.2
perl5401delta       Modificări Perl în versiunea 5.40.1
perl5400delta       Modificări Perl în versiunea 5.40.0
perl5383delta       Modificări Perl în versiunea 5.38.3
perl5382delta       Modificări Perl în versiunea 5.38.2
perl5381delta       Modificări Perl în versiunea 5.38.1
perl5380delta       Modificări Perl în versiunea 5.38.0
perl5363delta       Modificări Perl în versiunea 5.36.3
perl5362delta       Modificări Perl în versiunea 5.36.2
perl5361delta       Modificări Perl în versiunea 5.36.1
perl5360delta       Modificări Perl în versiunea 5.36.0
perl5343delta       Modificări Perl în versiunea 5.34.3
perl5342delta       Modificări Perl în versiunea 5.34.2
perl5341delta       Modificări Perl în versiunea 5.34.1
perl5340delta       Modificări Perl în versiunea 5.34.0
perl5321delta       Modificări Perl în versiunea 5.32.1
perl5320delta       Modificări Perl în versiunea 5.32.0
perl5303delta       Modificări Perl în versiunea 5.30.3
perl5302delta       Modificări Perl în versiunea 5.30.2
perl5301delta       Modificări Perl în versiunea 5.30.1
perl5300delta       Modificări Perl în versiunea 5.30.0
perl5283delta       Modificări Perl în versiunea 5.28.3
perl5282delta       Modificări Perl în versiunea 5.28.2
perl5281delta       Modificări Perl în versiunea 5.28.1
perl5280delta       Modificări Perl în versiunea 5.28.0
perl5263delta       Modificări Perl în versiunea 5.26.3
perl5262delta       Modificări Perl în versiunea 5.26.2
perl5261delta       Modificări Perl în versiunea 5.26.1
perl5260delta       Modificări Perl în versiunea 5.26.0
perl5244delta       Modificări Perl în versiunea 5.24.4
perl5243delta       Modificări Perl în versiunea 5.24.3
perl5242delta       Modificări Perl în versiunea 5.24.2
perl5241delta       Modificări Perl în versiunea 5.24.1
perl5240delta       Modificări Perl în versiunea 5.24.0
perl5224delta       Modificări Perl în versiunea 5.22.4
perl5223delta       Modificări Perl în versiunea 5.22.3
perl5222delta       Modificări Perl în versiunea 5.22.2
perl5221delta       Modificări Perl în versiunea 5.22.1
perl5220delta       Modificări Perl în versiunea 5.22.0
perl5203delta       Modificări Perl în versiunea 5.20.3
perl5202delta       Modificări Perl în versiunea 5.20.2
perl5201delta       Modificări Perl în versiunea 5.20.1
perl5200delta       Modificări Perl în versiunea 5.20.0
perl5184delta       Modificări Perl în versiunea 5.18.4
perl5182delta       Modificări Perl în versiunea 5.18.2
perl5181delta       Modificări Perl în versiunea 5.18.1
perl5180delta       Modificări Perl în versiunea 5.18.0
perl5163delta       Modificări Perl în versiunea 5.16.3
perl5162delta       Modificări Perl în versiunea 5.16.2
perl5161delta       Modificări Perl în versiunea 5.16.1
perl5160delta       Modificări Perl în versiunea 5.16.0
perl5144delta       Modificări Perl în versiunea 5.14.4
perl5143delta       Modificări Perl în versiunea 5.14.3
perl5142delta       Modificări Perl în versiunea 5.14.2
perl5141delta       Modificări Perl în versiunea 5.14.1
perl5140delta       Modificări Perl în versiunea 5.14.0
perl5125delta       Modificări Perl în versiunea 5.12.5
perl5124delta       Modificări Perl în versiunea 5.12.4
perl5123delta       Modificări Perl în versiunea 5.12.3
perl5122delta       Modificări Perl în versiunea 5.12.2
perl5121delta       Modificări Perl în versiunea 5.12.1
perl5120delta       Modificări Perl în versiunea 5.12.0
perl5101delta       Modificări Perl în versiunea 5.10.1
perl5100delta       Modificări Perl în versiunea 5.10.0
perl589delta        Modificări Perl în versiunea 5.8.9
perl588delta        Modificări Perl în versiunea 5.8.8
perl587delta        Modificări Perl în versiunea 5.8.7
perl586delta        Modificări Perl în versiunea 5.8.6
perl585delta        Modificări Perl în versiunea 5.8.5
perl584delta        Modificări Perl în versiunea 5.8.4
perl583delta        Modificări Perl în versiunea 5.8.3
perl582delta        Modificări Perl în versiunea 5.8.2
perl581delta        Modificări Perl în versiunea 5.8.1
perl58delta         Modificări Perl în versiunea 5.8.0
perl561delta        Modificări Perl în versiunea 5.6.1
perl56delta         Modificări Perl în versiunea 5.6
perl5005delta       Modificări Perl în versiunea 5.005
perl5004delta       Modificări Perl în versiunea 5.004

perlbook            Informații despre cărțile Perl
perlcommunity       Informații despre comunitatea Perl
perldoc             Căutați documentația Perl în format Pod
perlexperiment      O listă a caracteristicilor experimentale din Perl
perlartistic        Licența artistică Perl
perlgpl             Licența publică generală GNU

perlcn              Perl pentru chineză simplificată (în UTF-8)
perljp              Perl pentru japoneză (în EUC-JP)
perlko              Perl pentru coreeană (în EUC-KR)
perltw              Perl pentru chineză tradițională (în Big5)

perlaix             Note Perl pentru AIX
perlamiga           Note Perl pentru AmigaOS
perlandroid         Note Perl pentru Android
perlbs2000          Note Perl pentru POSIX-BC BS2000
perlcygwin          Note Perl pentru Cygwin
perlfreebsd         Note Perl pentru FreeBSD
perlhaiku           Note Perl pentru Haiku
perlhpux            Note Perl pentru HP- UX
perlhurd            Note Perl pentru Hurd
perlirix            Note Perl pentru Irix
perllinux           Note Perl pentru Linux
perlmacosx          Note Perl pentru Mac OS X
perlopenbsd         Note Perl pentru OpenBSD
perlos2             Note Perl pentru OS/2
perlos390           Note Perl pentru OS/390
perlos400           Note Perl pentru OS/400
perlplan9           Note Perl pentru Plan 9
perlqnx             Note Perl pentru QNX
perlriscos          Note Perl pentru RISC OS
perlsolaris         Note Perl pentru Solaris
perlsynology        Note Perl pentru Synology
perltru64           Note Perl pentru Tru64
perlvms             Note Perl pentru VMS
perlvos             Note Perl pentru Stratus VOS
perlwin32           Note Perl pentru Windows

perlboot
perlbot
perlrepository
perltodo
perltooc
perltoot

Într-un sistem de tip Unix, aceste fișiere de documentație sunt de obicei disponibile și sub formă de pagini de manual pentru a fi utilizate cu programul man.

Unele documentații nu sunt disponibile sub formă de pagini de manual, așa că, dacă o referință încrucișată nu este găsită în manual, încercați cu perldoc. Perldoc vă poate duce, de asemenea, direct la documentația pentru funcții (cu ajutorul opțiunii -f). Consultați «perldoc --help» (sau «perldoc perldoc» sau «man perldoc») pentru alte opțiuni utile pe care le oferă perldoc.

În general, dacă ceva ciudat a mers prost cu programul dvs. și nu sunteți sigur unde ar trebui să căutați ajutor, încercați să faceți codul dvs. să fie conform cu use strict și use warnings. Acestea vă vor indica adesea exact unde se află problema.

Perl înseamnă oficial „Practical Extraction and Report Language” (Limbaj practic de extragere și raportare), cu excepția cazurilor în care nu este așa.

Perl a fost inițial un limbaj optimizat pentru scanarea fișierelor text arbitrare, extragerea de informații din aceste fișiere text și afișarea de rapoarte bazate pe aceste informații. Acesta a devenit rapid un limbaj bun pentru multe sarcini de gestionare a sistemului. De-a lungul anilor, Perl s-a transformat într-un limbaj de programare de uz general. Este utilizat pe scară largă pentru orice, de la „câteva linii” rapide până la dezvoltarea de aplicații pe scară largă.

Limbajul se dorește a fi mai degrabă practic (ușor de utilizat, eficient, complet) decât frumos (mic, elegant, minimal). Acesta combină (în opinia autorului, oricum) unele dintre cele mai bune caracteristici ale sed, awk și sh, făcându-l familiar și ușor de utilizat de către utilizatorii Unix pentru a elabora soluții rapide la probleme enervante. Facilitățile sale de programare de uz general suportă paradigmele de programare procedurală, funcțională și orientată pe obiecte, ceea ce face din Perl un limbaj confortabil pentru proiecte majore pe termen lung, indiferent de înclinația dumneavoastră.

Rădăcinile lui Perl în procesarea textului nu au fost uitate de-a lungul anilor. Încă se mândrește cu unele dintre cele mai puternice expresii regulate care pot fi găsite oriunde, iar suportul său pentru textul Unicode este de clasă mondială. De asemenea, gestionează toate tipurile de text structurat, prin intermediul unei colecții extinse de extensii. Aceste biblioteci, colectate în CPAN, oferă soluții gata făcute pentru o gamă uimitoare de probleme. Atunci când nu au stabilit ele însele standardul, ele fură de la cei mai buni... la fel ca Perl însuși.

Perl este disponibil pentru majoritatea sistemelor de operare, inclusiv pentru aproape toate platformele de tip Unix. Consultați „Platforme acceptate” în perlport pentru o listă.

Consultați secțiunea „MEDIU” din perlrun.

Larry Wall <larry@wall.org>, cu ajutorul a o mulțime de alte persoane.

Dacă poveștile și mărturiile dumneavoastră despre succesul Perl pot fi de ajutor altora care doresc să promoveze utilizarea Perl în aplicațiile lor, sau dacă doriți pur și simplu să vă exprimați recunoștința față de Larry și dezvoltatorii Perl, vă rugăm să scrieți la perl-thanks@perl.org .

"@INC"                 locațiile bibliotecilor perl

"@INC" de mai sus este o referință la variabila încorporată cu același nume; a se vedea perlvar pentru mai multe informații.

https://www.perl.org/
Pagina principală Perl
https://www.perl.com/
Articole despre Perl
https://www.cpan.org/
Arhiva cuprinzătoare Perl
https://www.pm.org/
Vânzătorii/Librarii Perl

Utilizarea pragmei „use strict” asigură că toate variabilele sunt declarate în mod corespunzător și previne alte utilizări greșite ale caracteristicilor Perl tradiționale. Acestea sunt activate în mod implicit în cadrul domeniului de aplicare al „use v5.12” (sau mai mare).

Pragma „use warnings” produce niște diagnostice minunate. Este activată în mod implicit atunci când spuneți „use v5.35” (sau mai mare). Se poate folosi și opțiunea -w, dar utilizarea acesteia este în mod normal descurajată, deoarece se aplică la tot codul Perl executat, inclusiv la cel care nu se află sub controlul dumneavoastră.

Consultați perldiag pentru explicații despre toate diagnosticele Perl. Pragma „use diagnostics” transformă automat avertismentele și erorile Perl, în mod normal laconice, în aceste forme mai lungi.

Erorile de compilare vă vor indica numărul de linie al erorii, precum și următorul simbol sau tip de simbol care trebuie examinat; (într-un script transmis către Perl prin intermediul opțiunilor -e, fiecare -e este socotit ca o linie).

Scripturile Setuid au constrângeri suplimentare care pot produce mesaje de eroare precum „Insecure dependency”. A se vedea perlsec.

Am menționat că ar trebui să vă gândiți neapărat să folosiți pragma use warnings?

Comportamentul impus de pragma use warnings nu este obligatoriu.

Perl se află la mila definițiilor mașinii dvs. pentru diverse operații, cum ar fi distribuirea tipurilor, atof(), și ieșirea în virgulă mobilă cu sprintf().

Dacă stdio-ul (intrarea/ieșirea standard) dvs. necesită o căutare sau un eof între citirile și scrierile pe un anumit flux, la fel face și Perl; (acest lucru nu se aplică la sysread() și syswrite().)

Deși niciunul dintre tipurile de date încorporate nu are limite de dimensiune arbitrare (în afară de dimensiunea memoriei), există totuși câteva limite arbitrare: un nume de variabilă dat nu poate fi mai lung de 251 de caractere. Numerele de linie afișate de diagnostice sunt stocate intern ca numere întregi scurte, astfel încât acestea sunt limitate la un maxim de 65535 (numerele mai mari fiind de obicei afectate de depășire și încep din nou, de lazero).

Puteți trimite rapoartele de erori (asigurați-vă că includeți informațiile complete de configurare, așa cum au fost generate de programul «myconfig» în arborele sursă perl sau prin «perl -V») la https://github.com/Perl/perl5/issues.

Perl înseamnă, de fapt, „Pathologically Eclectic Rubbish Lister” (Colector de gunoi pretențios patologic), dar nu spuneți nimănui că am spus asta.

Motto-ul Perl este „Există mai multe moduri de a face acest lucru”. A ghici cât de multe sunt mai multe este lăsat ca un exercițiu pentru cititor.

Cele trei virtuți principale ale unui programator sunt Lenea, Nerăbdarea și Orgoliul. Vedeți Camel Book pentru a afla de ce.

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

13 iulie 2025 perl v5.42.0