Struktury sterujące

  1. Instrukcja warunkowa w Perlu. Zwróć uwagę na obligatoryjne nawiasy klamrowe:

     
    #!/usr/bin/perl
    
    print "Ile dzisiaj stopni? ";
    chomp($temperatura = <STDIN>);
    if ($temperatura > 25) {
        print "Zbyt goraco!\n";
    } else {
        print "Zbyt zimno!\n";
    }
    
    

  2. Druga wersja programu sprawdzającego temperaturę ilustrująca wykorzystanie instrukcji
    elsif
    (która jednak trochę ogranicza liczbę nawiasów):

     
    #!/usr/bin/perl
    
    print "Ile dzisiaj stopni? ";
    chomp($temperatura = <STDIN>);
    if ($temperatura > 25) {
        print "Zbyt goraco!\n";
    } elsif ($temperatura < 20) {
        print "Zbyt zimno!\n";
    } else {
        print "Idealnie!\n";
    }
    
    
    

  3. Pętla sumująca liczby. Zmienna
    $suma
    ma przed wejściem do pętli wartość
    undef
    i dopiero pierwsza operacja dodawania ustawia jej poprzednia wartość na zero (i sumowanie działa poprawnie). Program daje jednak zły wynik, gdy jako pierwszą liczbę podamy 999 (zatem nawet w Perlu warto czasem inicjalizować zmienne).

     
    #!/usr/bin/perl
    
    print "Wprowadz liczbe (999 oznacza koniec): ";
    chomp($n = <STDIN>);
    while ($n != 999) {
        $suma += $n;
        print "Wprowadz kolejna liczbe (999 oznacza koniec): ";
        chomp($n = <STDIN>);
    }
    print "Suma tych liczb wynosi $suma\n";
    
    
    

  4. Odwracanie kolejności wierszy tekstu bez użycia funkcji
    reverse
    . Najpierw tekst jest wczytywany do tablicy
    @lancuchy
    : jej elementy odpowiadają kolejnym wierszom tekstu. Następnie pętla
    while
    wykonuje się dopóki tablica
    @lancuchy
    jest niepusta. Wewnątrz pętli wywoływana jest funkcja
    pop
    , która usuwa ostatni element tablicy
    @lancuchy
    i zwraca go jako swoją wartość. Ta wartość jest następnie drukowana. Nazwa tablicy
    @lancuchy
    jest użyta w warunku końca pętli w kontekście skalarnym i ma wartość równą liczbie elementów pozostałych jeszcze w tablicy
    @lancuchy
    .

     
    #!/usr/bin/perl
    
    print "Wprowadz kilka lancuchow (zakoncz nacisnieciem klawiszy ^D:\n";
    @lancuchy = <STDIN>;
    while (@lancuchy) {
        print pop @lancuchy;
    }
    
    
    

  5. Obliczanie kwadratów liczb od 0 do 32 przy użyciu pętli
    for
    . Jej składnia w Perlu jest identyczna jak w języku C.

     
    #!/usr/bin/perl
    
    for ($liczba = 0; $liczba <= 32; $liczba++) {
        $kwadrat = $liczba*$liczba;
        printf "%5g %8g\n", $liczba, $kwadrat;
    }
    
    
    
    

  6. To samo, ale z pętlą
    foreach
    (nie powinieneś może tego wiedzieć, ale tak naprawdę słowa kluczowe
    for
    i
    foreach
    synonimami ;-)). Pętla
    foreach
    ma dwa argumenty: zmienną skalarną i tablicę (listę). Pętla ta nadaje kolejno zmiennej skalarnej wartości z listy i dla każdej z tych wartości wykonuje blok kodu. W przykładzie poniżej lista jest generowana przy użyciu operatora zakresu
    ..
    . Wyrażenie
    (0..32)
    jest równoważne liście (0, 1, 2, ... 32).

     
    #!/usr/bin/perl
    
    foreach $liczba (0..32) {
        $kwadrat = $liczba * $liczba;
        printf "%5g %8g\n", $liczba, $kwadrat;
    }
    
    
    
    
Last modified: poniedziałek, 10 sierpnia 2015, 10:49