Scris: 11 Sep 2012, 21:48
Unii spun "interesant", altii ar spune ca este ciudat sa se foloseasca acele caractere la inceputul variabilelor, insa practic ele sunt foarte utile fiindca este imediat evident daca o variabila este una scalara, sau daca este un array sau un array aasociativ (hash).
Si in plus datorita lor este foarte simplu de interpolat, adica de interpretat valoarea variabilelor intr-un string.
De exemplu, daca variabila $nume este egala cu "Ion Popescu", o putem interpola intr-un string cu:
$salut = "Buna ziua domnule $nume";
Iar $salut va avea valoarea "Buna ziua domnule Ion Popescu".
Valorile scalare se declara cu $ in fata, ca si in limbajul Bash, si apoi de la Perl a fost preluata idea si la PHP.
Variabilele de tip array se declara cu @ in fata, iar array-urile asociative cu % in fata.
La fel ca majoritatea limbajelor de nivel inalt, Perl a fost creat in C, dar a pastrat multe din stilul de programare in C, plus ca a preluat multe elemente din Bash, grep, sed, awk, acestea din urma fiind comenzi care se folosesc in Unix.
Da intr-adevar, se poate atribui o valoare locala unei variabile in blocul curent, valoare care sa modifice variabila globala, sau variabila din blocul superior, iar dupa incheierea blocului curent valoarea ei sa revina la valoarea initiala a variabilei globale (sau din blocul superior).
De exemplu:
our $var = 3;
print "$var\n";
{
local $var = "foo";
print "$var\n";
}
print "$var\n";
Va tipari:
3
foo
3
Sau ca in exemplul in care se folosesc doua blocuri pe doua niveluri:
our $var = 1;
print "$var\n";
{
local $var = 3;
print "$var\n";
{
local $var = "foo";
print "$var\n";
}
print "$var\n";
}
print "$var\n";
Se va tipari:
1
3
foo
3
1
Si in plus datorita lor este foarte simplu de interpolat, adica de interpretat valoarea variabilelor intr-un string.
De exemplu, daca variabila $nume este egala cu "Ion Popescu", o putem interpola intr-un string cu:
$salut = "Buna ziua domnule $nume";
Iar $salut va avea valoarea "Buna ziua domnule Ion Popescu".
Valorile scalare se declara cu $ in fata, ca si in limbajul Bash, si apoi de la Perl a fost preluata idea si la PHP.
Variabilele de tip array se declara cu @ in fata, iar array-urile asociative cu % in fata.
La fel ca majoritatea limbajelor de nivel inalt, Perl a fost creat in C, dar a pastrat multe din stilul de programare in C, plus ca a preluat multe elemente din Bash, grep, sed, awk, acestea din urma fiind comenzi care se folosesc in Unix.
Da intr-adevar, se poate atribui o valoare locala unei variabile in blocul curent, valoare care sa modifice variabila globala, sau variabila din blocul superior, iar dupa incheierea blocului curent valoarea ei sa revina la valoarea initiala a variabilei globale (sau din blocul superior).
De exemplu:
our $var = 3;
print "$var\n";
{
local $var = "foo";
print "$var\n";
}
print "$var\n";
Va tipari:
3
foo
3
Sau ca in exemplul in care se folosesc doua blocuri pe doua niveluri:
our $var = 1;
print "$var\n";
{
local $var = 3;
print "$var\n";
{
local $var = "foo";
print "$var\n";
}
print "$var\n";
}
print "$var\n";
Se va tipari:
1
3
foo
3
1