Perl/Zmienne skalarne

Poprzedni rozdział: Typy danych
Następny rozdział: Tablice

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:
    1. Jeśli tego nie zauważyłeś, zmienna skalarna jest w linii $moja_zmienna_skalarna
    2. 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.
Poprzedni rozdział: Typy danych
Następny rozdział: Tablice