PERL(1perl) Ghid de referina pentru programatorii Perl PERL(1perl) NUME perl - interpretul limbajului Perl 5 REZUMAT perl [ -sTtuUWX ] [ -hv ] [ -V[:variabile-configurare] ] [ -cw ] [ -d[t][:depanator] ] [ -D[numar/lista] ] [ -pna ] [ -Fmodel ] [ -l[octal] ] [ -0[octal/hexazecimal] ] [ -Idirector ] [ -m[-]modul ] [ -M[-]'modul...' ] [ -f ] [ -C [numar/lista] ] [ -S ] [ -x[director] ] [ -i[extensie] ] [ [-e|-E] 'comanda' ] [ -- ] [ fiier-program ] [ argument ]... Pentru mai multe informaii despre aceste opiuni, putei rula <>. OBINEREA AJUTORULUI Programul perldoc va ofera acces la toata documentaia care vine cu Perl. Putei obine mai multa documentaie, tutoriale i asistena din partea comunitaii in internet la . Daca suntei nou in Perl, ar trebui sa incepei prin a rula <>, care este o introducere generala pentru incepatori i care va ofera informaii de baza pentru a va ajuta sa navigai in restul documentaiei ample a Perl. Rulai <> pentru a afla mai multe lucruri pe care le putei face cu perldoc. Pentru a facilita accesul, manualul Perl a fost imparit in mai multe seciuni. Prezentare generala perl Prezentare generala Perl (aceasta seciune) perlintro Introducere in Perl pentru incepatori perlrun Execuie i opiuni Perl perltoc Tabla de cuprins a documentaiei Perl Tutoriale perlreftut Referine Perl - scurta 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 incepatori perlperf Tehnici de performana i optimizare Perl perlstyle Ghid de stil Perl perlcheat Foaie de consultaii Perl perltrap Capcane Perl pentru cei neavizai perldebtut Perl tutorial de depanare perlfaq Intrebari frecvente despre Perl perlfaq1 Intrebari generale despre Perl perlfaq2 Obinerea i invaarea lui Perl perlfaq3 Instrumente de programare perlfaq4 Manipulare de date perlfaq5 Fiiere i formate perlfaq6 Regexuri perlfaq7 Probleme legate de limbajul Perl perlfaq8 Interaciunea sistemului perlfaq9 Reele Manualul de referina perlsyn Sintaxa Perl perldata Structuri de date Perl perlop Operatorii Perl i precedena perlsub Subrutine Perl perlfunc Funcii integrate Perl perlopentut Tutorial Perl open() perlpacktut Tutorial Perl pack() i unpack() perlpod Documentaie veche simpla Perl perlpodspec Specificaie a formatului de documentaie veche simpla Perl perldocstyle Ghid de stil Perl pentru documentele de baza perlpodstyle Ghid de stil POD Perl perldiag Mesaje de diagnosticare Perl perldeprecation Deprecieri Perl perllexwarn Avertizarile Perl i controlul acestora perldebug Depanarea Perl perlvar Variabile predefinite Perl perlre Expresii regulate Perl, restul povetii perlrebackslash Secvene ,,backslash" de expresii regulate Perl perlrecharclass Clase de caractere pentru expresii regulate Perl perlreref Referina rapida de expresii regulate Perl perlref Referine Perl, restul povetii perlform Formate Perl perlobj Obiecte Perl perltie Obiecte Perl ascunse in spatele unor variabile simple perlclass Sintaxa claselor Perl perldbmfilter Filtre DBM Perl perlipc Comunicare interproces Perl perlfork Informaii 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 reete Perl Unicode perlunifaq Intrebari frecvente Perl Unicode perluniprops Indexul proprietailor Unicode in Perl perlunitut Tutorial Perl Unicode perlebcdic Consideraii pentru utilizarea Perl pe platforme EBCDIC perlsec Securitatea Perl perlsecpolicy Politica de gestionare a rapoartelor de securitate Perl perlmod Module Perl: cum funcioneaza acestea perlmodlib Module Perl: cum se scriu i se utilizeaza perlmodstyle Module Perl: cum se scriu module cu stil perlmodinstall Module Perl: cum se instaleaza din CPAN perlnewmod Module Perl: pregatirea unui nou modul pentru distribuie perlpragma Module Perl: scrierea unei pragme de utilizator perlutil ustensilele incluse in distribuia Perl perlfilter Filtrele de sursa Perl perldtrace Suportul Perl pentru DTrace perlglossary Glosar Perl Componente interne i interfaa limbajului C perlembed Modalitai Perl de a incorpora perl in aplicaia C sau C++ perldebguts Depanare Perl: trucuri i sfaturi perlxstut Tutorial Perl XS perlxs Interfaa de programare a aplicaiilor Perl XS perlxstypemap Instrumente de conversie a tipurilor Perl XS C/Perl perlclib Inlocuiri interne pentru funciile standard ale bibliotecii C perlguts Funcii interne Perl pentru cei care fac extensii perlcall Convenii de apelare Perl din C perlmroapi Interfaa modul de rezolvare a metodelor Perl perlreapi Interfaa modul de expresie regulata Perl perlreguts Componente interne ale motorului de expresie regulata Perl perlclassguts Componente interne ale sintaxei claselor perlapi Listarea API Perl (autogenerata) perlintern Funcii interne Perl (autogenerate) perliol API C pentru implementarea lui Perl a IO in Layers perlapio Interfaa de abstractizare IO interna Perl perlhack Ghidul hackerilor Perl perlsource Ghidul arborelui sursa Perl perlinterp Prezentare generala a sursei interpretului Perl i a modului in care funcioneaza perlhacktut Parcurgerea crearii 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 Inregistrari ale istoriei Perl perldelta Modificari Perl faa de versiunea anterioara perl5381delta Modificari Perl in versiunea 5.38.1 perl5380delta Modificari Perl in versiunea 5.38.0 perl5362delta Modificari Perl in versiunea 5.36.2 perl5361delta Modificari Perl in versiunea 5.36.1 perl5360delta Modificari Perl in versiunea 5.36.0 perl5342delta Modificari Perl in versiunea 5.34.2 perl5341delta Modificari Perl in versiunea 5.34.1 perl5340delta Modificari Perl in versiunea 5.34.0 perl5321delta Modificari Perl in versiunea 5.32.1 perl5320delta Modificari Perl in versiunea 5.32.0 perl5303delta Modificari Perl in versiunea 5.30.3 perl5302delta Modificari Perl in versiunea 5.30.2 perl5301delta Modificari Perl in versiunea 5.30.1 perl5300delta Modificari Perl in versiunea 5.30.0 perl5283delta Modificari Perl in versiunea 5.28.3 perl5282delta Modificari Perl in versiunea 5.28.2 perl5281delta Modificari Perl in versiunea 5.28.1 perl5280delta Modificari Perl in versiunea 5.28.0 perl5263delta Modificari Perl in versiunea 5.26.3 perl5262delta Modificari Perl in versiunea 5.26.2 perl5261delta Modificari Perl in versiunea 5.26.1 perl5260delta Modificari Perl in versiunea 5.26.0 perl5244delta Modificari Perl in versiunea 5.24.4 perl5243delta Modificari Perl in versiunea 5.24.3 perl5242delta Modificari Perl in versiunea 5.24.2 perl5241delta Modificari Perl in versiunea 5.24.1 perl5240delta Modificari Perl in versiunea 5.24.0 perl5224delta Modificari Perl in versiunea 5.22.4 perl5223delta Modificari Perl in versiunea 5.22.3 perl5222delta Modificari Perl in versiunea 5.22.2 perl5221delta Modificari Perl in versiunea 5.22.1 perl5220delta Modificari Perl in versiunea 5.22.0 perl5203delta Modificari Perl in versiunea 5.20.3 perl5202delta Modificari Perl in versiunea 5.20.2 perl5201delta Modificari Perl in versiunea 5.20.1 perl5200delta Modificari Perl in versiunea 5.20.0 perl5184delta Modificari Perl in versiunea 5.18.4 perl5182delta Modificari Perl in versiunea 5.18.2 perl5181delta Modificari Perl in versiunea 5.18.1 perl5180delta Modificari Perl in versiunea 5.18.0 perl5163delta Modificari Perl in versiunea 5.16.3 perl5162delta Modificari Perl in versiunea 5.16.2 perl5161delta Modificari Perl in versiunea 5.16.1 perl5160delta Modificari Perl in versiunea 5.16.0 perl5144delta Modificari Perl in versiunea 5.14.4 perl5143delta Modificari Perl in versiunea 5.14.3 perl5142delta Modificari Perl in versiunea 5.14.2 perl5141delta Modificari Perl in versiunea 5.14.1 perl5140delta Modificari Perl in versiunea 5.14.0 perl5125delta Modificari Perl in versiunea 5.12.5 perl5124delta Modificari Perl in versiunea 5.12.4 perl5123delta Modificari Perl in versiunea 5.12.3 perl5122delta Modificari Perl in versiunea 5.12.2 perl5121delta Modificari Perl in versiunea 5.12.1 perl5120delta Modificari Perl in versiunea 5.12.0 perl5101delta Modificari Perl in versiunea 5.10.1 perl5100delta Modificari Perl in versiunea 5.10.0 perl589delta Modificari Perl in versiunea 5.8.9 perl588delta Modificari Perl in versiunea 5.8.8 perl587delta Modificari Perl in versiunea 5.8.7 perl586delta Modificari Perl in versiunea 5.8.6 perl585delta Modificari Perl in versiunea 5.8.5 perl584delta Modificari Perl in versiunea 5.8.4 perl583delta Modificari Perl in versiunea 5.8.3 perl582delta Modificari Perl in versiunea 5.8.2 perl581delta Modificari Perl in versiunea 5.8.1 perl58delta Modificari Perl in versiunea 5.8.0 perl561delta Modificari Perl in versiunea 5.6.1 perl56delta Modificari Perl in versiunea 5.6 perl5005delta Modificari Perl in versiunea 5.005 perl5004delta Modificari Perl in versiunea 5.004 Diverse perlbook Informaii despre carile Perl perlcommunity Informaii despre comunitatea Perl perldoc Cautai documentaia Perl in format Pod perlexperiment O lista a caracteristicilor experimentale din Perl perlartistic Licena artistica Perl perlgpl Licena publica generala GNU Specific limbii perlcn Perl pentru chineza simplificata (in UTF-8) perljp Perl pentru japoneza (in EUC-JP) perlko Perl pentru coreeana (in EUC-KR) perltw Perl pentru chineza tradiionala (in Big5) perltw Perl pentru chineza tradiionala (in Big5) Specifica 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 Intr-un sistem de tip Unix, aceste fiiere de documentaie sunt de obicei disponibile i sub forma de pagini de manual pentru a fi utilizate cu programul man. Unele documentaii nu sunt disponibile sub forma de pagini de manual, aa ca, daca o referina incruciata nu este gasita in manual, incercai cu perldoc. Perldoc va poate duce, de asemenea, direct la documentaia pentru funcii (cu ajutorul opiunii -f). Consultai <> (sau <> sau <>) pentru alte opiuni utile pe care le ofera perldoc. In general, daca ceva ciudat a mers prost cu programul dvs. i nu suntei sigur unde ar trebui sa cautai ajutor, incercai sa facei codul dvs. sa fie conform cu use strict i use warnings. Acestea va vor indica adesea exact unde se afla problema. DESCRIERE Perl inseamna oficial ,,Practical Extraction and Report Language" (Limbaj practic de extragere i raportare), cu excepia cazurilor in care nu este aa. Perl a fost iniial un limbaj optimizat pentru scanarea fiierelor text arbitrare, extragerea de informaii din aceste fiiere text i afiarea de rapoarte bazate pe aceste informaii. Acesta a devenit rapid un limbaj bun pentru multe sarcini de gestionare a sistemului. De-a lungul anilor, Perl s-a transformat intr-un limbaj de programare de uz general. Este utilizat pe scara larga pentru orice, de la ,,cateva linii" rapide pana la dezvoltarea de aplicaii pe scara larga. Limbajul se dorete a fi mai degraba practic (uor de utilizat, eficient, complet) decat frumos (mic, elegant, minimal). Acesta combina (in opinia autorului, oricum) unele dintre cele mai bune caracteristici ale sed, awk i sh, facandu-l familiar i uor de utilizat de catre utilizatorii Unix pentru a elabora soluii rapide la probleme enervante. Facilitaile sale de programare de uz general suporta paradigmele de programare procedurala, funcionala i orientata pe obiecte, ceea ce face din Perl un limbaj confortabil pentru proiecte majore pe termen lung, indiferent de inclinaia dumneavoastra. Radacinile lui Perl in procesarea textului nu au fost uitate de-a lungul anilor. Inca se mandrete cu unele dintre cele mai puternice expresii regulate care pot fi gasite oriunde, iar suportul sau pentru textul Unicode este de clasa mondiala. De asemenea, gestioneaza toate tipurile de text structurat, prin intermediul unei colecii extinse de extensii. Aceste biblioteci, colectate in CPAN, ofera soluii gata facute pentru o gama uimitoare de probleme. Atunci cand nu au stabilit ele insele standardul, ele fura de la cei mai buni... la fel ca Perl insui. DISPONIBILITATE Perl este disponibil pentru majoritatea sistemelor de operare, inclusiv pentru aproape toate platformele de tip Unix. Consultai ,,Platforme acceptate" in perlport pentru o lista. MEDIU Consultai seciunea ,,MEDIU" din perlrun. AUTOR Larry Wall , cu ajutorul a o mulime de alte persoane. Daca povetile i marturiile dumneavoastra despre succesul Perl pot fi de ajutor altora care doresc sa promoveze utilizarea Perl in aplicaiile lor, sau daca dorii pur i simplu sa va exprimai recunotina faa de Larry i dezvoltatorii Perl, va rugam sa scriei la perl-thanks@perl.org . FIIERE "@INC" locaiile bibliotecilor perl "@INC" de mai sus este o referina la variabila incorporata cu acelai nume; a se vedea perlvar pentru mai multe informaii. CONSULTAI I Pagina principala Perl https://www.perl.org/ Articole Perl https://www.perl.com/ Arhiva cuprinzatoare Perl https://www.cpan.org/ Distribuitori Perl https://www.pm.org/ DIAGNOSTICARE Utilizarea pragmei ,,use strict" asigura ca toate variabilele sunt declarate in mod corespunzator i previne alte utilizari greite ale caracteristicilor Perl tradiionale. Acestea sunt activate in mod implicit in cadrul domeniului de aplicare al ,,use v5.12" (sau mai mare). Pragma ,,use warnings" produce nite diagnostice minunate. Este activata in mod implicit atunci cand spunei ,,use v5.35" (sau mai mare). Se poate folosi i opiunea -w, dar utilizarea acesteia este in mod normal descurajata, deoarece se aplica la tot codul Perl executat, inclusiv la cel care nu se afla sub controlul dumneavoastra. Consultai perldiag pentru explicaii despre toate diagnosticele Perl. Pragma ,,use diagnostics" transforma automat avertismentele i erorile Perl, in mod normal laconice, in aceste forme mai lungi. Erorile de compilare va vor indica numarul de linie al erorii, precum i urmatorul simbol sau tip de simbol care trebuie examinat; (intr-un script transmis catre Perl prin intermediul opiunilor -e, fiecare -e este socotit ca o linie). Scripturile Setuid au constrangeri suplimentare care pot produce mesaje de eroare precum ,,Insecure dependency". A se vedea perlsec. Am menionat ca ar trebui sa va gandii neaparat sa folosii pragma use warnings? ERORI Comportamentul impus de pragma use warnings nu este obligatoriu. Perl se afla la mila definiiilor mainii dvs. pentru diverse operaii, cum ar fi distribuirea tipurilor, atof(), i ieirea in virgula mobila cu sprintf(). Daca stdio-ul (intrarea/ieirea standard) dvs. necesita o cautare sau un eof intre citirile i scrierile pe un anumit flux, la fel face i Perl; (acest lucru nu se aplica la sysread() i syswrite().) Dei niciunul dintre tipurile de date incorporate nu are limite de dimensiune arbitrare (in afara de dimensiunea memoriei), exista totui cateva limite arbitrare: un nume de variabila dat nu poate fi mai lung de 251 de caractere. Numerele de linie afiate de diagnostice sunt stocate intern ca numere intregi scurte, astfel incat acestea sunt limitate la un maxim de 65535 (numerele mai mari fiind de obicei afectate de depaire i incep din nou, de lazero). Putei trimite rapoartele de erori (asigurai-va ca includei informaiile complete de configurare, aa cum au fost generate de programul <> in arborele sursa perl sau prin <>) la . Perl inseamna, de fapt, ,,Pathologically Eclectic Rubbish Lister" (Colector de gunoi pretenios patologic), dar nu spunei nimanui ca am spus asta. NOTE Motto-ul Perl este ,,Exista mai multe moduri de a face acest lucru". A ghici cat de multe sunt mai multe este lasat ca un exerciiu pentru cititor. Cele trei virtui principale ale unui programator sunt Lenea, Nerabdarea i Orgoliul. Vedei Camel Book pentru a afla de ce. TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . perl v5.38.2 11 februarie 2024 PERL(1perl)