Scroll to navigation

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

NUME

perl - interpretul limbajului Perl 5

SINOPSIS

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».

OBȚINEREA AJUTORULUI

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.

Prezentare generală

    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

Tutoriale

    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

Manualul de referință

    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

Componente interne și interfața limbajului C

    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

Istoric

    perlhist            Înregistrări de istoric Perl
    perldelta           Modificări Perl față de versiunea anterioară
    perl5400delta       Modificări Perl în versiunea 5.40.0
    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

Diverse

    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

Specific limbii

    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)

Specifică platformei

    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

Cioturi ale documentelor șterse

    perlboot
    perlbot
    perlrepository
    perltodo
    perltooc
    perltoot

În sistemele Debian, trebuie să instalați pachetul perl-doc, care conține majoritatea documentației standard Perl și programul perldoc.

Este disponibilă o documentație suplimentară amplă pentru modulele Perl, atât pentru cele distribuite împreună cu Perl, cât și pentru modulele de la terți care sunt împachetate sau instalate local.

Ar trebui să puteți vizualiza documentația Perl cu programul man(1) sau perldoc(1).

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.

DESCRIERE

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.

DISPONIBILITATE

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ă.

MEDIU

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

AUTOR

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 .

FIȘIERE

 "@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.

CONSULTAȚI ȘI

<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

DIAGNOSTICARE

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?

ERORI

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.

NOTE

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.

TRADUCERE

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.

12 aprilie 2025 perl v5.40.1