Perl/Zmienne skalarne
Zmienne skalarne
[edytuj]Wprowadzenie
[edytuj]Ponieważ 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
[edytuj]Zajmiemy 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
[edytuj]Przydzielanie 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
[edytuj]Zmienne skalarne, a łańcuchy znaków
[edytuj]Przypomnij 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
[edytuj]Znajdują 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
[edytuj]Tutaj 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
[edytuj]Tutaj 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.