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 Regexuri  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 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
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 ale istoriei 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  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

  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

<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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.