Najprostszym rodzajem zmiennych w Perlu są zmienne skalarne. Mogą one przechowywać wartości liczbowe jak i łańcuchy znaków. Dużą zaletą zmiennych w perlu jest to, że są one kompletnie zamienne. Na przykład, instrukcja
ustawia wartość zmiennej $priority na 9, ale można także przypisać łańcuch do dokładnie tej samej zmiennej:
Perl także akceptuje liczby jako łańcuchy znakowe, takie jak:
$priority = '9'; $default = '0009'; |
i może jeszcze sobie poradzić z operacjami arytmetycznymi i nie tylko dość dobrze.
Ogólnie nazwy zmiennych zawierają cyfry, litery i podkreślenia, ale nie mogą zaczynać się cyfrą. Zmienna $_ jest zastrzeżona, ale ona zostanie omówiona później. Poza tym Perl rozpoznaje wielkie i małe litery, więc $a i $A to dwie różne zmienne.
1. Operacje i operatory.
Perl używa wszystkich zwykłych operatorów arytmetycznych języka C
$a = 1 + 2; |
# dodaj 1 i 2, a wynik zachowaj w zmiennej $a |
$a = 3 - 4; |
# odejmij 4 od 3, a wynik zachowaj w zmiennej $a |
$a = 5 * 6; |
# pomnóż 5 przez 6, a wynik zachowaj w zmiennej $a |
$a = 7 / 8; |
# podziel 7 przez 8 a wynik 0.875 zachowaj w zmiennej $a |
$a = 9 ** 10; |
# podnieś 9 do potęgi 10 i zachowaj w zmiennej $a |
$a = 5 % 2; |
# resztę z dzielenia 5 przez 2 zachowaj w zmiennej $a |
++$a; |
# zwiększ $a o 1 i potem zwróć wartość |
$a++; |
# zwróć wartość $a i potem zwiększ o 1 |
--$a; |
# zmniejsz $a o 1 i potem zwróć wartość |
$a--; |
# zwróć wartość $a i potem zmniejsz o 1 |
zaś w przypadku łańcuchów
$a = $b . $c; |
# łączy $b i $c i zachowuje to w zmiennej $a |
$a = $b x $c; |
# $b powtarza $c razy i zachowuje to w zmiennej $a |
Do przypisania wartości Perl używa
$a = $b; |
# przypisz $b do $a |
$a += $b; |
# dodaj $b do $a |
$a -= $b; |
# odejmij $b od $a |
$a .= $b; |
# dopisz $b do $a |
Linia zawierająca wartość $a=$b robi kopię $b i potem zapisuje ją do $a. Dlatego jeśli zmieni się $b to nie zmieni się $a.
Inne operatory można znaleźć po wpisaniu komendy man perlop (Unix), która wywoła opis wszystkich możliwych operacji.
2. Interpolacja.
Poniższy przykład wyświetli napis koła i kwadraty poprzez wykorzystanie operacji łączenia:
$a = 'koła'; $b = 'kwadraty'; print $a.' i '.$b; |
Byłoby ładniej, gdyby użyło się jednego łańcucha w ostatniej linii, ale linia
wyświetli komunikat $a i $b, który nie jest zamierzony. Zamiast tego można użyć podwójnego cudzysłowu w miejsce pojedynczego:
Podwójny cudzysłów wymusza interpolacje kodu, włączając interpretację zmiennych. To rozwiązanie jest lepsze niż pierwsze. Inne kody, które są interpolowane zawierają znaki specjalne takie jak przejście do nowej linii i tabulacja. Kod jest przejściem do nowej linii, a kod to tabulacja. |