Scroll to navigation

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

NUME

perl - interpretul limbajului Perl 5

REZUMAT

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

Manualul de referință

 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

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 Î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

Istoric

 perlhist Înregistrări de istoric 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  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)  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

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/

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 ianuarie 2024 perl v5.38.2