Perl/Zmienne skalarne
Zmienne skalarne
edytujWprowadzenie
edytujPonieważ już zrozumiałeś, jak korzystać z łańcuchów znaków i liczb w Perlu, możemy teraz przejść do korzystania ze zmiennych. Najprostszym sposobem, aby zrozumieć jak działa zmienna skalarna - perlowskie określenie pojedynczej wartości - jest analiza przykładu:
#!/usr/bin/perl use warnings; $moja_zmienna_skalarna = "Hello, Sir!"; print $moja_zmienna_skalarna;
Przyjrzyjmy się bliżej temu programowi:
- Pierwsze dwie linie już rozumiemy - #!/usr/bin/perl i use warnings;
- Trzecia linia jest bardziej ciekawa, zawiera ona zmienną skalarną. Mamy kilka ważnych myśli do poruszenia:
- Jeśli tego nie zauważyłeś, zmienna skalarna jest w linii $moja_zmienna_skalarna
- Przedrostek $ znajdujący się przed nazwą moja_zmienna_skalarna oznacza, że definiujemy zmienną skalarną, musisz go dodawać przez nazwą.
- Popatrzmy teraz na ostatnią linię. Jest to znajoma funkcja, która pokazuje wartość zmiennej $moja_zmienna_skalarna.
Wypróbuj to! Przepisz program napisany wyżej i uruchom go. |
Przydzielanie wartości i używanie zmiennej skalarnej
edytujZajmiemy się teraz pisaniem programów, zwracając szczególną uwagę na zmienne. Co to jest zmienna? Zmienna jest to takie coś, co przechowuje dane. Zmienna skalarna przechowuje pojedynczą wartość.
Konwencja nazw
edytuj- Wszystkie zmienne skalarne zaczynają się od symbolu $. Możesz zapamiętać to poprzez myślenie o nim jako $kalar.
- Nazwa zmiennej może zawierać znaki alfanumeryczne i podkreślenia.
- Liczby mogą być dodawane do nazwy zmiennej, ale nie mogą znajdować się na początku.
Przydzielanie wartości
edytujPrzydzielanie wartości do zmiennej jest bardzo proste, wszystko czego potrzebujesz użyć to pojedynczy znak =. Zapamiętaj, że nazwa zmiennej musi znajdować się po lewej stronie znaku =, a wartość po prawej.
Zobaczmy kilka przykładów:
$zmienna_skalarna_1 = 10; # $zmienna_skalarna_1 teraz przechowuje liczbę 10 $zmienna_skalarna_2 = "Hello!"; # $zmienna_skalarna_2 teraz przechowuje napis "Hello!" 10 = $zmienna_skalarna_3; # ŹLE - 10 nie przyjmuje wartości $zmienna_skalarna_3, $zmienna_skalarna_3 przyjmuje wartość 10
Kiedy przydzielasz wartość do zmiennej, możesz używać tych samych operatorów, co do łańcuchów znaków i liczb. Tutaj mamy parę przykładów:
$zmienna_skalarna_1 = (10 + 1); # $zmienna_skalarna_1 dostaje 11 $zmienna_skalarna_2 = "World" x 5; # $zmienna_skalarna_2 przechowuje "WorldWorldWorldWorldWorld"
Zobaczmy, jak możemy przydzielić wartość z jednej zmiennej do drugiej:
$skalar_1 = 12; # $skalar_1 pamięta 12 $skalar_2 = $skalar_1 / 4; # $skalar_2 otrzymuje 3 $skalar_2 = $skalar_2 - 1; # $skalar_2 otrzymuje 2
Uwaga Ostatnia linia może wyglądać tak: $skalar_2 -= 1. |
Używanie zmiennych skalarnych
edytujZmienne skalarne, a łańcuchy znaków
edytujPrzypomnij sobie, co napisaliśmy wcześniej w tej książce. Powiedzieliśmy, że tworzenie łańcuchów znaków przy pomocy " lub ' robi dużą różnicę w interakcji łańcucha znaków i tekstu. Zobaczymy teraz, na czym to polega.
Ponieważ już rozumiesz, czym jest zmienna, nasuwa się pytanie: co należy zrobić, aby umieścić wartość zmiennej w łańcuchu znaków? Zobaczmy przykłady:
- Program z podwójnym cudzysłowem (double quoted string)
#!/usr/bin/perl use warnings; $zmienna = 4; print "Widzialem $zmienna lwy!";
Zobaczymy "Widzialem 4 lwy!"
- Program z pojedynczym cudzysłowem:
#!/usr/bin/perl use warnings; $zmienna = 4; print 'Widzialem $zmienna lwy!';
Zobaczymy "Widzialem $zmienna lwy!"
Spróbuj to! Przepisz program przedstawiony wyżej i uruchom go. |
Wystąpił ten efekt, ponieważ, pojedyncze cudzysłowy są interpretowane dosłownie.
Operatory porównania
edytujZnajdują się tutaj operatory używane do porównywania liczb i tekstu. Są one bardzo przydatne, jeśli potrzebujesz napisać bardziej zaawansowany program. Zarówno liczby, jak i łańcuchy znaków posiadają własne operatory, które sprawdzają np. czy są one równe czy nie i zwracają prawdę (true) lub fałsz (false).
Porównania numeryczne
edytujTutaj mamy listę operatorów porównań numerycznych:
- == - Równy
- != - Nie równy
- < - Mniejszy niż
- > - Większy niż
- <= - Mniejszy bądź równy
- >= - Większy bądź równy
- <=> - Numeryczne porównanie
Porównania łańcuchów znaków
edytujTutaj mamy listę operatorów porównujących łańcuchy znaków:
- eq - Równy
- ne - Nie równy
- lt - Mniejszy niż
- gt - Większy niż
- le - Mniejszy bądź równy
- ge - Większy bądź równy
- cmp - Porównanie tekstowe
Uwaga Obydwa operatory porównania <=> i cmp nieznacznie różnią się od reszty. Zamiast zwracać tylko prawdę lub fałsz, operatory te zwracają 1 - jeśli lewy argument jest większy od prawego, 0 - jeśli są równe, -1 - jeśli prawy argument jest większy od lewego. |
Ćwiczenia
edytuj- Spróbuj napisać program w stylu Hello World z tą różnicą, że stworzysz zmienną przechowującą "Hello, world!\n", a następnie ją wyświetlisz.
- Pokombinuj z rzeczami, o których była mowa wcześniej. Spróbuj napisać program, który zawiera wszystkie przedstawione wcześniej przykłady.