Podstawy Perla: przyspieszony kurs dla programistów CGI

7

Perl jest językiem programowania. Jest stary. Jest szanowany. On jest wszędzie. Jeśli kiedykolwiek widziałeś skrypt CGI uruchamiający podstawową aplikację internetową z końca lat 90., widziałeś Perla.

Robi dobrze dwie rzeczy. Po pierwsze, zastępuje pliki wsadowe DOS i skrypty powłoki C. Po drugie, zasila serwery internetowe. To właśnie ten kontekst jest teraz ważny.

Dobra wiadomość? Kod źródłowy jest bezpłatny. Twórcy rozdają je za darmo. Możesz pobrać tysiące skryptów. Możesz je studiować. Możesz je złamać.

Złe wieści? Większość tego kodu jest nieczytelna. Perl zachęca do stosowania stylu graniczącego z nakładaniem. Jeśli nie wiesz, co robisz, nie zrozumiesz tego, co czytasz.

W tym samouczku założono, że wiesz już, jak kodować. Jeśli znasz C, jesteś na czele. Jeśli nie, zacznij tutaj. Brakuje nam filozofii. Przejdźmy do składni.

Uruchom interpreter

Potrzebujesz interpretera Perla.

Jeśli używasz systemu UNIX, prawdopodobnie jest on już zainstalowany. 99,99% szans. Sprawdź swój terminal.

Jeśli używasz systemu Windows lub Mac, przejdź do oficjalnej strony internetowej. Pobierz najnowszą wersję. Zainstaluj to. Perl jest darmowy. Jest to oprogramowanie typu open source. Istnieje na rynku od 1987 roku. Proces instalacji jest prosty.

Po instalacji znajdź katalog DOCS. Jest on zawarty w pakiecie. Zobacz to. Nie czytaj jeszcze każdego słowa. Jest gęsty. Jest sucho. Ale to jest dokładne. Będziesz go potrzebować później, kiedy podstawy nie będą miały już sensu.

Twój pierwszy skrypt

Ustaw ścieżkę. Dodaj plik wykonywalny Perla. Otwórz edytor tekstu. Utwórz plik o nazwie test1.pl.

Napisz to:

„perłowy”.
wydrukuj „Witaj, świecie!\n”;

Zobaczysz „Hello World!” na ekranie. To jest standardowe wyjście. To jest standardowe wyjście.

W systemie UNIX możesz dodać #!/usr/bin/perl do pierwszej linii. Następnie możesz po prostu wpisać ./test1.pl. Odkurzacz. Szybciej.

Polecenie print wypisuje dane na standardowe wyjście. \n to znak nowej linii. Tylko.

Spróbuj tego:

„perłowy”.
wydrukuj „Witaj, świecie!\n”;

Teraz widzisz dosłowny tekst. \n pozostaje jako \n. Żadnej interpretacji. Żadnej magii.

Istnieje również znak cudzysłowu: `.

„perłowy”.
wydrukuj cmd /c katalog ;

Akceptuje również kropki jako operatory łączenia:

„perłowy”.
wydrukuj „cześć”. “\N” . ‘świat!’;

Podwójne cudzysłowy interpretują sekwencje specjalne. Single – nie.

Liczby też działają.

„perłowy”.
$i = 5;
$j = $i + 5;
wydrukuj $i, “\t”, $i + 1, “\t”, $j;

Istnieje wersja skrócona. .= działa jak +=.

„perłowy”.
$a = „Witam”;
$b = “Świat\n”;
$a.= $b;
wydrukuj $a;

Tablice mają zerowe indeksowanie. Jak C. Jak Java. Podobnie jak w Pythonie.

Wpis $#a podaje maksymalny indeks. Nie ilość. Indeks. Jeśli więc masz trzy elementy, „$#a” równa się 2.

Hasze

Hashe zaczynają się od %. Są to pary klucz-wartość.

„perłowy”.
%h = („pies”, „szczekanie”, „kot”, „miau”, „węgorz”, „zap”);
print “Pies mówi “, $h{‘dog’};

Cytuje lewą stronę. Działa jak przecinek. Dzięki temu kod jest czytelny. Użyj tego.

Perl staje się łatwy, gdy przestaniesz zmagać się ze składnią. Podstawy są proste. W zaawansowanych rzeczach robi się dziwnie. Trzymaj się rdzenia. Opanuj zmienne. Opanuj zasady cudzysłowu.

Reszta to tylko szablony. I złe nawyki.

Jeśli pracowałeś z C, składnia Perla będzie wydawać się znajoma. Zapożycza w dużej mierze z tego języka, ale łagodzi rygorystyczność wymagań.

Weźmy pętlę for. Wygląda dokładnie tak, jak można się spodziewać:

„perłowy”.
for ($i = 0; $i < 10; $i++) { drukuj $i, "\n"; }

Operatory logiczne działają według tych samych zasad, co w C. Użyj && dla „i”, || dla „lub” i ! dla „nie”.

Uwaga: Perl oferuje drugi zestaw operatorów porównania dla ciągów. Podczas gdy == sprawdza równość liczb, eq sprawdza równość ciągów.

Operatory numeryczne pozostają standardem:
== (równe)
!= (nierówne)
<, <=, >, >=

Jeśli jednak pracujesz z tekstem, mogą Ci odpowiadać alternatywy oparte na słowach:
równe (równe)
ne (nie równe)
lt (mniej)
le (mniejszy lub równy)
gt (więcej)
ge (większy lub równy)

Iteruj po tablicach

Iterowanie po kolekcji w Perlu jest proste dzięki foreach. Przypisuje kolejno każdy element tablicy do zmiennej skalarnej.

„perłowy”.
@a = („pies”, „kot”, „węgorz”);
foreach $b (@a) {
wydrukuj $b, “\n”;
}

Pomiń nawiasy, a kompilator zgłosi błąd.

Pisanie podprogramów

Funkcje w Perlu definiuje się za pomocą słowa kluczowego sub.

Po wywołaniu podprogramu wszystkie przekazane do niego argumenty są umieszczane w specjalnej tablicy @_.

„perłowy”.
show(‘kot’, ‘pies’, ‘węgorz’);

podprogram {
for ($i = 0; $i <= $#; $i++) {
wydrukuj $
[$i], “\n”;
}
}

Możesz także wywołać funkcję jawnie, używając symbolu &.

„perłowy”.
&show(‘a’, ‘b’, ‘c’);

Zakłada się, że dane wejściowe są prawidłową liczbą całkowitą. Jeśli użytkownik wprowadzi śmieci, logika zostanie zerwana.

Aby wprowadzić pojedynczy znak, użyj getc :

„perłowy”.
$i = getc(STDIN);

Liczba „1” na końcu oznacza, że odczytywany jest tylko jeden znak.

Dane środowiska i wiersza poleceń

Perl zapewnia dostęp do danych systemowych poprzez zmienne globalne.

Hash %ENV zawiera wszystkie zmienne środowiskowe. Pamiętaj, że klucze muszą być pisane wielkimi literami.

„perłowy”.
wydrukuj $ENV{‘PATH’};
“`

Jeśli potrzebujesz dostępu do argumentów wiersza poleceń, spójrz na tablicę @ARGV.

  • $ARGV[0] jest pierwszym argumentem.
  • $ARGV[1] jest drugim argumentem.
  • $#ARGV podaje indeks ostatniego argumentu (liczba minus jeden).

Ułatwia to tworzenie skryptów akceptujących dynamiczne wprowadzanie danych bez konieczności kodowania wartości.

Czy Perl jest nadal aktualny?

To jest uczciwe pytanie. Czy programiści nadal używają Perla? Tak.

Czy Perl będzie nadal używany w 2024 r.? Tak, chociaż jego rola się zmieniła. Jest to język wysokiego poziomu, ogólnego przeznaczenia, interpretowany i dynamiczny. Nie dominuje w nowych projektach tworzenia aplikacji internetowych tak jak Python czy Node.js.

Jednakże Perl pozostaje potężnym narzędziem do administrowania systemem i obsługi starszego kodu. Wyróżnia się przetwarzaniem tekstu i szybkim pisaniem skryptów.