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 Regexuri  perlfaq7 Probleme legate de limbajul Perl
 perlfaq8 Interacțiunea sistemului  perlfaq9 Rețele

 perlsyn Sintaxa Perl  perldata Structuri de date Perl  perlop
Operatorii Perl și precedența  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  perlclass
Sintaxa claselor Perl  perldbmfilter Filtre DBM Perl   perlipc
Comunicare interproces 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 Înlocuiri
interne pentru 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 ale istoriei Perl  perldelta Modificări Perl față
de versiunea anterioară  perl5381delta Modificări Perl în versiunea 5.38.1
 perl5380delta Modificări Perl în versiunea 5.38.0  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 
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)  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.

Pagina principală Perl  https://www.perl.org/ Articole Perl 
https://www.perl.com/ Arhiva cuprinzătoare Perl  https://www.cpan.org/
Distribuitori Perl  https://www.pm.org/

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.

11 februarie 2024 perl v5.38.2