In randurile urmatoare vom incerca sa va prezentam caracteristicile principale ale limbajului:
Tipurile de date scalare sunt numerele intregi si cele flotante (9.78) cat si un sir de caractere, iar acestea sunt initializate in cazul numerelor cu valoarea 0 iar in cazul caracterelor cu " " - un sir vid. Exemple:
Flexibilitatea limbajului Perl permite delimitarea sirurilor si in acest mod:
Tipurile complexe de date:
Pentru accesarea unui element se inlocuieste caracteru @ cu $ pentru ca selectam un singur element: $limbaj[2];
Se poate accesa un subtablou specificand un interval si acesta va fi prefixat cu @;
Pentru adaugarea si stergerea de elemente la sfarsitul unui tablou utilizam functiile predefinite push() si pop():
Daca dorim sa adaugam si sa stergem elemente la inceput utilizam functiile unshift() si shift();
Lungimea unui tablou poate fi aflata cu (ambele constructii au acelasi efect):
Vom obrtine indexul ultimului element:
Pentru ca elementele unui tablou sa devina cuvinte ale unui sir de caractere, utilizam constructia:
Elementele tabloului vor fi delimitate de un spatiu. Pentru aschimba delimitatorul:
Tablourile pot fi utilizate si in partea stanga a unei atribuiri;
Variabila $primul va primi valoarea primului element al tabloului @limbaje, iar $al_doilea valoarea celui de-al doilea element din tablou. A doua linie, $prima ia valoarea primului element din tablou, iar @restul va fi un tablou continand restul de elemente din tabloul @limbaje.
Atribuirile multiple de variabile scalare se poate face in acest mod:
Avand acelasi efect cu:
- sintaxa - limbajul Perl are o sinataxa case-senzitive, comentariile sunt precedate de caracterul # si fiecare instructiune este terminata cu ; acoladele sunt delimitatori de bloc de instructiuni {};
- tipuri de date si variabile;
Tipurile de date scalare sunt numerele intregi si cele flotante (9.78) cat si un sir de caractere, iar acestea sunt initializate in cazul numerelor cu valoarea 0 iar in cazul caracterelor cu " " - un sir vid. Exemple:
$nr_telefon++;
$pi= 3.14152965;
$limbaj= "Perl";
Flexibilitatea limbajului Perl permite delimitarea sirurilor si in acest mod:
q/Mihai Cornel/ #identic cu 'Mihai Cornel'
qq/Mihai Cornel/ #identic cu "Mihai Cornel"
qx/ls -la/ # executia unei comenzi, identic cu `ls -la`
qw/Perl Python Java/ # lista de cuvinte
Tipurile complexe de date:
- tablourile indexate sunt liste ordonate de scalari, acesibile prin intermediul unui indice numeric. Numele unui vector va fi precedat de caracterul @ iar indicele va porni de la zero.
@absenti[$nr_studenti] =20;
@linbaje=("Ada", "perl", "Java", "Python");
@mix=("Rosu", 123, $pi, "Radu");
Se poate accesa un subtablou specificand un interval si acesta va fi prefixat cu @;
print "Primele trei limbaje : @limbaje[0..2]\n";
Pentru adaugarea si stergerea de elemente la sfarsitul unui tablou utilizam functiile predefinite push() si pop():
push(@limbaje, "JavaScript");
print "Ultimul limbaj eliminat:", pop(@limbaje);
Daca dorim sa adaugam si sa stergem elemente la inceput utilizam functiile unshift() si shift();
Lungimea unui tablou poate fi aflata cu (ambele constructii au acelasi efect):
$nr_limbaje = @limbaje;
$nr_limbaje = scalar(@limbaje);
Vom obrtine indexul ultimului element:
$nr_limbaje = @#limbaje;
$sir= "@limbaje";
Elementele tabloului vor fi delimitate de un spatiu. Pentru aschimba delimitatorul:
$" = "|";
$sir = "@limbaje";
print $sir, "\n";
Tablourile pot fi utilizate si in partea stanga a unei atribuiri;
($primul, $al_doilea)= @limbaje;
($prima, @restul)= @limbaje;
Atribuirile multiple de variabile scalare se poate face in acest mod:
($oameni, $animale) = ($romani, 123);
$oameni = $romani;
$animale = 123;
- tablouri asociative (hash) - sunt perechi cheie valoare declarate cu caracterul %
#!/usr/bin/perl use warnings; use strict; #use utf8; #--------------------------------------------------------------------- # Acesta este un tablou asociativ (hash) format dintr-o cheie si o valoare. # Mai jos aveti codurile oraselor din Romania cheia este un nr. iar valoare #este un string. Cheile trebuie sa fie unice. #------------------------------------------------------------------------- my %codul = ( 1 => 'București', 30 => 'Suceava', 31 => 'Botoșani', 32 => 'Iași', 33 => 'Neamț', 34 => 'Bacău', 35 => 'Vaslui', 36 => 'Galați', 37 => 'Vrancea', 38 => 'Buzău', 39 => 'Brăila', 40 => 'Tulcea', 41 => 'Constanța', 42 => 'Călărași', 43 => 'Ialomița', 44 => 'Prahova', 45 => 'Dâmbovița', 46 => 'Giurgiu', 47 => 'Teleorman', 48 => 'Argeș', 49 => 'Olt', 50 => 'Vâlcea', 51 => 'Dolj', 52 => 'Mehedinți', 53 => 'Gorj', 54 => 'Hunedoara', 55 => 'Caraș-Severin', 56 => 'Timiș', 57 => 'Arad', 58 => 'Alba', 59 => 'Bihor', 60 => 'Sălaj', 61 => 'Satu Mare', 62 => 'Maramureș', 63 => 'Bistrița-Năsăud', 64 => 'Cluj', 65 => 'Mureș', 66 => 'Harghita', 67 => 'Covasna', 68 => 'Brașov', 69 => 'Sibiu', ); # Aici obtinem valorile pentru chei $codul{23}. Intre acolade sunt specificate #doar numele de chei(aici numere) print "Codul 37 este pentru $codul{37}.\n"; print "Codul 39 este pentru $codul{39}.\n"; # Aceste liste pot fi iterate cu ajutorul instructiunii foreach, iar functia each() #returneaza o pereche cheie-valoare while((my $codul, my $orasul) = each(%codul)){ print "Codul $codul este pentru $orasul.\n"; } # Adaugarea de elemente se poate face prin $codul{70}="Crevedia"; print "Codul 70 este pentru $codul{70}.\n"; # Un element se poate sterge cu functia delete(), iar existenta unui element #cu exists() #if exists ($codul{55}) { # delete($codul{55}); #} print "Codul 55 este pentru $codul{55}.\n"; # Pentru sortarea unui tablou se utilizeaza sort() iar pentru inversare #reverse()
Niciun comentariu:
Trimiteți un comentariu