# dobry komentarz - mówi dlaczego wykonujemy działanie:
$V = $s / $t; # obliczamy prędkość pojazdu
# zły przykład - komentarz mówi jak obliczamy prędkość:
$V = $s / $t; # dzielimy drogę $s przez czas $t
Polecenia (wykorzytanie literałów)
Podstawą każdego języka programownia są literały - należą do nich cyfry lub ciągi znaków, np:
23
-2789
3.1482
5.29e-6
'Hello World' # jeśli literały zawierają inne znaki niż cyfry
# musimy je zamknąć wewnątrz cudzysłowów
Literały możemy przetworzyć na polecenia, dodając na końcu znak ; (średnik). Polecenia tym różnią się od literałów, że zwracają wartości. Poniżej przedstawione polecenie zwraca ciąg znaków hello World do systemu.
Hello World; # trzeba pamiętać o średniku!
Operatory i operacje na zmiennych
Polecenia stają się pożyteczne dopiero przy wykorzystaniu zmiennych i operatrów. Zmienną nazywamy coś,
co ma wartość którą można zmieniać. W Perlu wszystkie zmienne są zmiennymi skalarnymi, co oznacza że można
do nich tak samo wprowadzać liczby czy ciągi znaków (zmienne skalarne zachowują się bardzo podobnie
jak zmienne w Visual Basic'u zadeklarowane Dim zmienna as Variant). Każda zmienna zaczyna się od
znaku $ (Shift + 4). Nazwy zmiennych mogą składać się tylko z liter i cyfr oraz ze znaku _.
Należy zwrócić uwagę na to, że Perl tak jak większość języków programowania rozróżnia małe i duże litery.
$zmienna = "Hello World"; # w tym momencie program tworzy zmienną
# i przypisuje do niej ciąg znaków
$zmienna = 12; # do tej samej zmiennej przypisujemy liczbę
Operator jest symbolem nakazującym kompilatorowi wykonać jakąś operację, na przykład w powyższym przykładzie operator = przypisuje zmiennej $zmienna wartość polecenia "Hello World"; Obie strony przypisania są nazywane operandami. Operator = oczekuje od operand pewnych właściwości: od prawej, że ma wartość, od lewej, że można jej przypisać wartość. W momencie przypisania całe wyrażenie przyjmuje wartość równą wartości przypisanej do lewego operandu. Dlatego możemy napisać tak:
$a = ($b = "Hello World"); # pobieranie wartości wyrażenia z nawiasu
# Wynik: zmienna $a jest teraz równa
# zmiennej $b, która ma wartość "Hello World"
Powyższe wyrażenie jest równoważne temu:
$b = "Hello World"; # najpierw $b otrzymuje wartość "Hello World"
$a = $b; # potem $a otrzymuje wartość $b
Kolejność wykonywania działań zależy od nawiasów np.
$a = 3;
$b = 5;
$c = 7;
($a = $b) = $c; # Wynik: $a = 7, $b = 3, $c = 7
Jak już wspomniałem Perl posługuje się zmiennymi skalarnymi, czyli nie zwraca uwagi na różnice między liczbami całkowitymi, zmiennoprzecikowymi i ciągami znaków (inaczej niż w innych językach takich jak C czy Turbo Pascal). W razie potrzeby potrafi on przeprowadzić automatyczną konwersję typów np:
$a = "35"; # $a zawiera ciąg znaków, który przedstawia liczbę
$b = 56; # $b zawiera liczbę
$c = $a + $b; # Wynik: $c = 91, zmienna $a została zmieniona na liczbę,
# potem zsumowana z $b, wynik został zapisany w $c
Jeżeli ze zmiennej zawierającej ciąg znaków Perlowi nie uda się uzyskać liczby, otrzymuje ona wartość 0.
$a = "12"; # $a zawiera liczbę
$b = "text"; # $b zawiera ciąg znaków, który nie jest liczbą
$c = $a + $b; # Wynik: $c = 12, ponieważ Perl nie potrefił (raczej
# słusznie) przerobić $b = "text" na liczbę
Lista operatorów
W powyższym przykładzie został zastosowany operator dodawania. Powoduje on że polecenie
ma wartość sumy dwóch operandów. Wartość polecenia przypisywaliśmy operatorem =
do zmiennej $c. W Perlu występuje ich wiele i są o różnym priorytecie. Priorytet
decyduje o kolejności wykonywania działań. Działania o wyższym priorytecie są wykonywane w pierwszej
kolejności. Jeśli chcemy ją (kolejność) zmienić, musimy użyć nawiasów. Poniżej jest przedstawiona lista
najważniejszych operatorów razem z ich krótkimi opisami.
Operatory ++ i --
Są one operatorami zwiększającymi (inkramentacja) lub zmniejszającymi (dekrementacja) wartość danej zmiennej o 1
# --- postinkrementacja ---
$a = 5;
$b = $a++; # przypisanie $a do $b, następnie zwiększenie $a o jeden
# Wynik: $a = 6, $b = 5
# --- preinkrementacja ---
$a = 5;
$b = ++$a; # zwiększenie $a o jeden, następnie przypisanie jej do $b
# Wynik: $a = 6, $b = 6
Autor:
Maciej Jerzy Nowak
nowak@vips.qs.pl