Przejdź do zawartości

Perl/Zmienne skalarne

Z Wikibooks, biblioteki wolnych podręczników.
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