UNIX, Linux, Programare, Scripting, Retele
unix, linux, programare, script, hosting, server, retele
|
Lista Forumurilor Pe Tematici
|
UNIX, Linux, Programare, Scripting, Retele | Reguli | Inregistrare | Login
POZE UNIX, LINUX, PROGRAMARE, SCRIPTING, RETELE
Nu sunteti logat.
|
Nou pe simpatie: Profil Jamieknv
 | Femeie 24 ani Bucuresti cauta Barbat 26 - 55 ani |
|
|
Sad_Dreamer
Membru
Inregistrat: acum 19 ani
Postari: 57
|
|
Acest Tutorial Este Tradus De DarthSion Smiley Perl sau Practical Extraction and Report Language este un limbaj de scripting inventat de catre Larry Wall pentru a gestiona fisiere text foarte mari. Spre deosebire de C++ si Java este un limbaj "interpretat" si nu complilat. Acest tutorial are ca scop familiarizarea cu bazele limbajului Perl Smiley. Inainte de a incepe orice miscare in Perl aveti nevoie de un program care sa interpreteze scripturile si sa le execute. Daca detineti un sistem unix(linux,mac os,solaris,bsd) aproape sigur caaveti deja interpretorul perl instalat. Acesta poate fi accesat deschizand consola de comanda si executand comanda perl. Daca primiti o eroare de genul "command not found" inseamna ca nu aveti perl instalat. Daca folositi windows,sau nu aveti perl instalat puteti downloada programul de la. Dupa cum v-ati obisnuit de la majoritatea limbajelorde programare,primul nostru program va fi unul simplu,care afiseaza pe ecran "Hello World!". Deschideti editorul de text (pico,vim,notepad,wordpad etc) si introduceti urmatoarele linii de cod. #!/usr/bin/perl print "Hello, world!n"; Salvati fisierul ca hello.pl (sau orice alt nume cu extensia .pl) apoi deschideti consola. Schimbati directorul pana in locul unde ati salvat scriptul si scrieti comanda "perl hello.pl". Daca ati facut toti pasii cum trebuie ar trebui sa afiseze Hello World!. Acum sa studiem sursa. Prima linie "#!/usr/bin/perl" ii transmite programului calea spre locul unde este instalat perl pe computerul vostru. Daca folosit windows,nu prea aveti nevoie de aceasta linie,dar daca folositi linux inlocuiti /usr/bin/perl cu locul unde este instalat perl. Linia urmatoare,adica 'print "Hello World!n" ; ' ii transmite programului sa afiseze textul Hello World! urmat de o linie noua. Dupa cum probabil ati observat,fiecare linie in perl trebuie sa fie urmata de " ; " similar cu multe alte limbajede programare. Strings - Stringurile reprezinta un sir de caractere care de obicei formeaza ceva ce are sens. Cuvantul perl de exemplu este un string. La fel si orice alt cuvant sau propozitie,sir de numere etc. In perl,stringurile sunt afisate folosind functia perl. De exemplu,linia 'print "hello world!n" ;" a afisat stringul hello world urmat de o linie noua. Caracterul "n" sau newline este numit "escape sequence" (pentru a face acest tutorial cat de cat inteligibil,nu am tradus chiar toti termenii). Limbajul perl detine multe escape sequences printre care si "t" care printeaza un tab,adica se considera ca ai apasat tab si se muta textul mai la dreapta. De asemeanea "a" este un beep. Daca aveti sunetele enabled din windows ar trebui sa auziti beepul. Acum,sa zicem ca vreti sa afisati un sir mai lung de caractere "" si "n" fara sa adaugati o linie noua in text. . Pt a face asta aven doua posibilitati. Ori inlocuim ghilimelele " cu apostrof ' si ceea ce rezulta este " print 'Hello World!n' ;". Apostroful transmite intrerpetorului ca tot ceea ce urmeaza este text care trebuie doar afisat si nu interpretat. A 2-a varianta este inlocuirea caracterului "" cu "\". Aceasta comanda transmite interpretorului sa afiseze caracterul "" lasand litera "n" neafectata. Ambele metode au acelasi rezultat. Acum sa va prezint alte metode de formatare a textului. Comanda 'print "Hello" . "World!" . "n" ; ' are acelasi rezultat ca si comanda initiala din programul hello world. Aceasta este datorita faptului ca . -punctul- este folosit pt concatenarea textului,adica pt a uni mai multe siruri de caractere intr-unul singur. Acelasi efect il obtinem daca in loc de . -punct- folosim , -virgula-. !Numere si expresii matematice! Expresiile matematice de orice fel pot fi evaluate de programul perl. Operatorii folositi sunt urmatorii. + - adunare - - scadere * - inmultire / - impartire % - calcului restului (operatorul mod) Spre exemplu,priviti urmatoarele operatii. print 20+3; #afiseaza 23 print 20-3; #afiseaza 17 print 20*3; #afiseaza 60 print 20/3; #afiseaza 6.66666666666667 print 20%3; #afiseaza 2 Pana acum totul ar trebui sa fie destul de clar. Singura nelamurire este probabil semnificatia caracterului "#". In perl # anunta un comentariu. Interpretorul considera ca tot ce urmeaza dupa # este un comentariu si nu este afisat sau executat. De asemenea,nu trebuie uitata ordinea operatiilor matematice,ce a fost predata in cls a 4-a.si anume ca inmultirea si impartirea se executa inaintea adunarii si scadereii. Operatia 2+2*3 va avea ca rezultat 8 si nu 12. Daca doriti ca adunarea sa fie efectuata inaintea inmultirii folositi paranteze adica (2+2)*3. -Variabile. Of,in sfarsit am ajuns la variabile. Ca sa mai scurtez din tutorial o sa presupun ca stiti cu totii ce e aia o variabila,si nu o sa stau sa va explic Smiley. Principalele tipuri de variabile in perl sunt - Scalar variable notata cu $numevariabila - Array variable notata cu @numevariabila - Hash variable notata cu %numevariabila
Partea I
_______________________________________ Portal SkullBox SkullBox Forum IP Finder and web browser details revealer
|
|
| pus acum 19 ani |
|
|
Sad_Dreamer
Membru
Inregistrat: acum 19 ani
Postari: 57
|
|
O variabila scalara TREBUIE sa inceapa cu caracterul $(dolar) urmat de o litera sau underline. Exemplu de variabila corect scrisa : $variabilaluSion Exepmplu de variabila incorect scrisa : variabila lu sion, $123variabila etc. Variabilelor le sunt asignate valori folosind operatorul = (egal) si pot fi printate folosind comanda print. Iata cum arata programul Hello World folosind o variabila. #!/usr/bin/perl #hello.pl -cu variabila $hello_var = "Hello, world!n"; print $hello_var; - Variabile de tipul array. Cei care au experienta minima intr-un limbaj de programare cunosc termenul de vector. Cei care nu au sa isi imagineze un array ca in urmatoarea figura. |__|__|__| Fiecare casuta are o anumita valoare in interior,iar accest array sau vector contine toate acele variabile. Variabilele array sunt initializate in felul urmator : @fructe = ("mere", "pere", "petarde" ; @numere = (23, 54, 35, 5432) @chestii_diverse = ("cuvant", 300, "tutorial perl plictisitor" Dupa cum vedeti un array poate contine orice fel de scalar in interior. Operatiuni cu array- In perl ca si in alte limbajede programare numarul casutelor,sau variabilelor retinute de catre un array incep cu indicele 0. Adica daca dam comanda ' print $fructe[0] ' se va afisa "mere". Daca dam comanda "$fructe[0] = "banane"; merele vor fi schimbate cu banane Smiley). Dar,de ce oare folosim $ in loc de @ la aceste operatiuni? Pai,deoarece aceste operatiuni se adreseaza numai unei portiuni din array si nu tuturor variabilelor ce sunt cuprinse acolo. Daca vrem sa actionam in diverse feluri asupra unei portiuni din array folosim ceea ce se numeste "array slice" adica felie de array. print @fructe[1,2,3]; afiseaza mere pere petarde print @fructe[3,2,1]; afiseaza petarde pere mere. print @fructe[1..3]; afiseaza mere pere petarde. In acest context folosim iar operatorul @ deoarece actionam asupra mai multor variabile din array si nu asupra unui singur lucru. De asemenea este posibil sa numaram invers intr-un array,fara sa stim cate elemente are. print @fructe[-1]; afiseaza petarde Smiley. Ca sa determinam lungimea unui array folosim sintaxa speciala $#array(unde inlocuim array cu numele propriuzis). Adica priviti urmatorul exemplu: $last = $#fructe #variabila last a retinut indexului ultimului element al arrayului print @fructe[($last/2)..$last] # si se afiseaza a 2-a jumatate a arrayului. Daca vom afisa variabila $last vom observa ca are valoarea 2 si nu 3-care elem are arrayul. Asta se intampla deoarece indexarea incepe de la 0 si nu de la 1. Pt a afla numarul real de obiecte din array trebuie doar sa adunam 1 Smiley. Totusi,exista si o cale mai simpla de a numara exact cate obiecte are un array. Asta se face examinand arrayul dpdv al unei variabile scalare. Adica $numarul_d_elem = @fructe si vom avea numarul de elemente fara sa mai trebuiasca sa adunam sau sa scadem nush ce. Stiu ca multi dintre voi "h4x0r-ilor" sunteti foarte lenesi,si stiu ca e destul de plictisitor sa tot stai sa scrii la un array toate elementele cu ghilimele virgule si alte prostii. De accea va prezint comanda qw//. Operatorul qw// vine de la quote words si ia cuvinte separate de spatiu si le transforma intr-o lista fara sa mai stati voi cu grija punctuatiei. Spre exemplu initializam un array in felul urmator : @an = qw/ ianuarie februarie martie aprilie mai iunie iulie august septembrie octombrie noiembrei decembrie/ ; Dupa cum vedeti este foarte clar si dificil de gresit la o asemenea sintaxa. -Afisarea valorilor unui array (nenicule da mult mai dureaza tutorialul asta Sad ) Consideram urmatorul program care vorbeste de la sine. my @fructe = qw/mere portocale banane caise struguri/; print @fructe; # afiseaza "mereportocalebananecaisestruguri" print join(", ", @fructe);# afiseaza "mere, portocale, banane, caise, struguri" print "@fructe"; # afiseaza "mere portocale banane caise struguri" Mai ramane ultimul tip de variabila,variabila hash sau matrice,dar e mult de scris la ea,multe operatiuni si o sa revin cu un tutorial facut special pt hash. -Operatori decizional- Adica if,and,or fratilor Smiley Operatorul decizional if. Fara sa mai adaug multa palavrageala iata cum functioneaza if in perl. if( test boolean) {aici intra comenzi ce se executa daca testul boolean este adevarat} Spre exemplu studiati urmatorul program. if (5 > 3) { print "Mdap,5 e mai mare decat 3 nenen";} Daca tot am ajuns la if,trebuie sa va familiarizez cu operatorii (nu mai stiu cum le zice) ma rog,va dati voi seama care cum sunt : == - egal cu (valoare numerica) adica intre 2 numere cand le testezi egalitatea bagi == eq - egal cu (la stringuri) > - mai mare < - mai mic >= - mai mare sau egal <= - mai mic sau egal != - diferit de (sau nu e egal cu) || - operatorul logic sau && - operatorul logic si Structura conditionala if...blabla...else. Din nou,un program care vorbeste de la sine : if (3 > 5) { print "Da frate,3 e mai mare decat 5.n"; } else { print "Fraiere,3 nu e mai mare decat 5.n"; } Structura repetitiva Structura repetitiva while functioneaza in felul urmator: while (test boolean adevarat) {executa comenzile de aici} Priviti urmatorul exemplu: $i = 0; while ($i <= 10) { print "$i inca e mai mic decat 10n"; $i = $i + 1; }
Daca tot am batut atata drum pana aici,hai sa va arat si cum scurtam textul,facem codul mai curat,si ne pastram lenea pt un joc de cs . $a += 1; # e la fel cu $a = $a + 1 $a -= 3; # e la fel cu $a = $a - 3 $a *= 42; # e la fel cu $a = $a * 42 $a /= 2; # e la fel cu $a = $a / 2 $a %= 5; # e la fel cu $a = $a % 5; $a **= 2; # e la fel cu $a = $a ** 2; De asemenea perl detine si operatori de incrementare ++ si decrementare --. Adica $variabila++ # aduna 1 la variabila $variabila-- #scade 1 din variabila. Structura repetitiva for. For-ul din perl e identic cu cel din c++. Studiati programul urmator si va veti da seama ce si cum. for ($i = 0; $i <= 10; $i++) { print "$i nu e mai mare decat 10n"; } Partea A II-Ia Acest Tutorial A Fost Tradus De Darth Sion
Am acordat credite :-P
_______________________________________ Portal SkullBox SkullBox Forum IP Finder and web browser details revealer
|
|
| pus acum 19 ani |
|
operabilus
B.O.F.H.
 Din: Sillycon Valley
Inregistrat: acum 20 ani
Postari: 200
|
|
|
| pus acum 19 ani |
|
|
Sad_Dreamer
Membru
Inregistrat: acum 19 ani
Postari: 57
|
|
|
| pus acum 19 ani |
|