Dane skalarne

  1. Skrypt w Perlu obliczający obwód okręgu o ustalonym promieniu
    12.5
    . Zmienne skalarne w Perlu mogą przechowywać liczby (poniżej) bądź napisy (za chwilę). Ich nazwy zaczynają się od znaku
    $
    . Zmiennych nie deklarujemy; napisy i liczby są automatycznie przekształcane jedne na drugie. Zmienna użyta przed jawnym nadaniem jej wartości ma wartość
    undef
    (wykonanie skryptu z opcją
    -w
    spowoduje wydrukowanie ostrzeżenia o takiej zmiennej). Przy wywołaniu funkcji w Perlu można opuszczać nawiasy: w przykładzie poniżej możnaby użyć
    print ("napis")
    zamiast
    print "napis"
    . Stałe napisowe w podwójnych cudzysłowach
    "
    poddawane są operacji zwanej interpolacją: są skanowane w poszukiwaniu nazw zmiennych skalarnych (zaczynających się od
    $
    ) i znalezione nazwy są zastępowane przez wartość tych zmiennych. W przykładzie poniżej używamy interpolacji do wydrukowania obwodu okręgu. Oprócz tego wewnątrz napisów w
    "
    specjalne znaczenie mają niektóre znaki poprzedzone
    \
    : na przykład
    "\n"
    zastępowany jest przez znak nowego wiersza. Zarówno interpolacja jak i podstawianie znaków sterujących nie działają gdy napis jest zawarty w pojedynczych cudzysłowach
    '
    .

     
    #!/usr/bin/perl
    
    $pi = 3.141592654;
    $wynik = 2 * $pi * 12.5;
    print "Obwod okregu o promieniu 12.5 jest rowny $wynik\n";
    
    
    
    

  2. Ten sam program czytający promień okręgu z klawiarury. Do wczytywania danych ze standardowego wejścia (klawiatura lub plik, jeśli używamy przekierowania) służy operator
    <STDIN>
    . Gdy w programie
    <STDIN>
    użyte jest w miejscu, w którym oczekiwana jest wartość skalarna (w przykładzie poniżej jest to instrukcja przypisania do zmiennej skalarnej), to wczytywany jest kolejny wiersz tekstu, zaś jego zawartość podstawiana jest zamiast
    <STDIN>
    . Wiersz wczytywany jest razem ze znakiem końca wiersza
    "\n"
    . Znak ten można łatwo usunąć korzystając z funkcji
    chomp
    . Gdybyśmy usunęli to wywołanie z poniższego skryptu, to obwód koła byłby nadal liczony poprawnie (wczytany napis jest przelształcany w liczbę gdy występuje w wyrażeniu matematycznym), ale końcowa instrukcja
    print
    drukowałaby znak nowego wiersza po wypisaniu liczbowej wartości promienia (zresztą sprawdź sam!).

     
    #!/usr/bin/perl
    
    print "Podaj dlugosc promienia: ";
    chomp($promien = <STDIN>);
    $pi = 3.141592654;
    $wynik = 2 * $pi * $promien;
    print "Obwod okregu o promieniu $promien jest rowny $wynik\n";
    
    
    
    

  3. Poniższy program czyta dwie liczby i oblicza ich iloczyn. Zauważ, że drugiemu wystąpieniu operatora
    <STDIN>
    towarzyszy wczytanie kolejnego wiersza tekstu ze standardowego wejścia.

     
    #!/usr/bin/perl
    
    print "Pierwsza liczba: "; chomp($a = <STDIN>);
    print "Druga liczba: "; chomp($b = <STDIN>);
    $c = $a * $b; print "Iloczyn to $c.\n";
    
    
    
    

  4. Program wczytuje napis i liczbę po czym drukuje zadaną liczbę wierszy zawierających wprowadzony napis. Wykorzystujemy operator powtarzania napisu
    x
    , który powatarza lewy argument (interpretowany jako napis) tyle razy, na ile wskazuje prawy argument (interpretowany jako liczba). Zauważ, że zmienna
    $a
    zawierająca napis nie jest przetwarzana przez funkcję
    chomp
    : dzięki temu kopie napisu drukowane są w osobnych wierszach.

     
    #!/usr/bin/perl
    
    print "Lancuch: "; $a = <STDIN>;
    print "Ile razy: "; chomp($b = <STDIN>);
    $c = $a x $b; print "Wynik:\n$c";
    
    
    
    

Last modified: poniedziałek, 10 sierpnia 2015, 10:49