Kurs Perl – cz. 3

To już trzecia część kursu Perla, ale ten czas leci :D Zasady takie jak w poprzednich dwóch, czyli zakładam, że jeśli chodzi o programowanie to znasz przynajmniej podstawy jakiegoś innego języka typu C++ czy Java.

1. Wstęp

Tak jak wspomniałem w poprzedniej części, zanim zajmiemy się poważną robotą poznamy jeszcze dzisiaj instrukcje sterujące i operacje wejścia/wyjścia tak żeby nasze wspaniałe programy mogły podejmować jakieś decyzje i wyświetlać wynik na ekranie ;)

2. Instrukcje sterujące

Zasadniczo mamy dwa rodzaje instrukcji sterujących – instrukcje warunkowe i pętle.

2.1 Instrukcje warunkowe

W Perlu podstawową instrukcją warunkową jest if. Właściwie nie różni się on niczym w stosunku to if-a znanego z C/C++, Javy czy C#. Jedyna różnica jaka występuje to konieczność dodawania nawiasów klamrowych nawet kiedy w warunku chcemy umieścić tylko jedną instrukcję. Dlatego poniższy kod nie jest poprawny:

Prawidłowo wyglądał by tak:

Do instrukcji if można dodatkowo dodać instrukcje elseifelse.

Elseif pozwala dodać kolejny warunek, który zostanie sprawdzony kiedy poprzedni zwróci wartość false. Zaś instrukcja else zostanie wykonana kiedy żaden z warunków nie zostanie spełniony:

Zamiast instrukcji if można też użyć unless, które powoduje wykonanie się bloku w przypadku kiedy podany warunek nie jest spełniony, zatem dwa poniższe fragmenty są równoważne:

2.2 Pętle

2.2.1 Pętla while/until

Pętla w Perlu while nie różni się od pętli dostępnej w innych językach i wykonuje instrukcje dopóki podany warunek jest spełniony. Dodatkowo za blokiem pętli można umieścić blok continue, który będzie się wykonywał po skończeniu poprzedniego bloku lub w przypadku użycia operatora next, o którym za chwilę:

Tak jak zamiast instrukcji if można użyć unless tak zamiast while można użyć until, które spowoduje, że pętla będzie się wykonywać dopóki warunek nie będzie spełniony.

Podobnie jak w C++ można w Perlu skorzystać z pętli  do while (do until). Wyglądają one następująco:

I od zwykłej pętli while różni się tym, że instrukcje w niej zawarte wykonają się co najmniej raz.

2.2.2 Pętla for/foreach

Forforeach są w Perlu synonimami, tzn. działają tak samo, jednak przyjęło się, że for używamy kiedy wykonujemy pętlę z licznikiem, a foreach kiedy chcemy przejść przez wszystkie elementy kolekcji. W pierwszym przypadku pętla wygląda tak samo jak w C++:

Drugi wariant to przechodzenie przez wszystkie elementy listy:

W każdej iteracji zmienna $element będzie zawierała kolejny element z przekazanej tablicy. W przypadku kiedy nie podamy własnej zmiennej kolejne elementy będą wpisywane do domyślnej zmiennej $_ :

 2.2.3 Polecenia sterujące pętlą

  • next‚  – powoduje przejście do kolejnej iteracji bez kończenia aktualnej. Jeśli jest dodany blok continue to zostanie wykonany.
  • last‚  – Powoduje zakończenie wykonywania pętli. Blok continue nie jest wykonywany.
  • redo‚  – powoduje ponowne wykonanie aktualnej iteracji pętli. Nie zwiększa licznika i nie sprawdza warunku pętli.

3. Operacje wejścia/wyjścia

Standardowe wyjście i wejście są na początku przygody z językiem programowania podstawą do komunikacji między Tobą, a twoimi programami. Domyślnie standardowym wyjściem i wejściem jest okno konsoli, w której uruchamiasz swój program.

3.1 Wyświetlanie danych

Jeśli chodzi o wyświetlanie danych to sposób na to poznałeś już w pierwszej części kursu. Zapis STDOUT reprezentuje wbudowany uchwyt do standardowego wyjścia. Do wypisania tekstu służy polecenie print, które domyślnie wysyła dane do STDOUT dlatego ten zapis:

Jest równoważny temu:

Tak więc widać przy okazji, że uchwyt, do którego instrukcja print będzie przesyłać dane podaje się między tą instrukcją, a wyświetlanym tekstem.

Jeśli chcesz wyświetlić wartość zmiennej w tekście korzystasz z podwójnych cudzysłowów i podajesz jej nazwę poprzedzoną znakiem dolara:

3.2 Wczytywanie danych z klawiatury

Do czytania ze standardowego wejścia służy zapis <STDIN>, same nawiasy <> służą do czytania danych z uchwytu, a STDIN jest wbudowanym uchwytem do standardowego wejścia. Aby wczytać dane do zmiennej wystarczy przypisać do niej <STDIN>:

Taki zapis spowoduje, że do zmiennej przypisana będzie cała linia wpisanego tekstu, aż do napotkania znaku nowej linii. Jeśli <STDIN> przypiszemy do tablicy wtedy wszystkie linie ze standardowego wejścia będą zapisane jako kolejne elementy:

 4. Podsumowanie

I to by było na tyle w dzisiejszej części. Pokazałem jak sterować wykonywaniem programu i jak wczytywać i wyświetlać dane korzystając ze standardowego wejścia/wyjścia. Od następnej części zabierzemy się już za coś konkretniejszego czyli za wyrażenia regularne.

Jak zwykle jeśli uważasz ten kurs za przydatny i chcesz abym go kontynuował zostaw Lajka na Facebooku, albo komentarz pod postem ;)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *