Mój mały sklepik

Perl to język, którego pierwotnym zastosowaniem było przetwarzanie plików tekstowych. Obecnie jest on najczęściej wykorzystywany do tworzenia interakcyjnych stron WWW – książek gości czy sklepów internetowych. Ten popularny język skryptowy ma bardzo duże możliwości, a jednocześnie łatwo jest się go nauczyć.

Pisanie w Perlu nie wymaga ani kompilatora, ani dużego doświadczenia programistycznego. Na początek wystarczy prosty edytor tekstu, choć odpowiednie narzędzia mogą ułatwić pisanie programów (patrz: ramka na stronie 151).

Niniejszy kurs stanowi wprowadzenie do Perla. W pierwszej części stworzymy prosty sklep internetowy, przygotujemy formularz zamówienia, sprawdzimy, czy został on poprawnie wypełniony, i wyślemy odpowiedź do użytkownika. Pliki wykorzystywane w tym przykładzie znajdują się na płycie CD-ROM dołączonej do bieżącego numeru CHIP-a. Wszystkie zbiory HTML powinniśmy skopiować do folderu zawierającego pliki udostępniane przez serwer WWW. W przypadku Apache’a (patrz: ramka na stronie 152) jest to katalog htdocs .

Plik zamow.html zawiera formularz zamówienia, gdzie klient naszego sklepu wypełnia pola ksiazki, nazwisko i e-mail. To, co dzieje się z wartościami podanymi w formularzu po jego wysłaniu, określa znacznik

:

<form method= "post" action="/cgi-bin/demo.pl">

Po wysłaniu formularzadane są przekazywane do skryptu demo.pl, który powinien znajdować się w podkatalogu cgi-bin w folderze naszego serwera. Plik demo.pl możemy umieścić tam na dwa sposoby: kopiując skrypt bezpośrednio do katalogu cgi-bin z płyty CD-ROM dołączonej do CHIP-a lub tworząc go samodzielnie w kilka minut za pomocą Perl Buildera (patrz: ramka na stronie 151).

Kiedy skrypt znajduje się już tam, gdzie być powinien, przed pierwszym uruchomieniem musimy przypisać mu takie atrybuty, aby serwer WWW miał uprawnienia nie tylko do odczytu, ale również do jego uruchamiania. W przypadku błędnie ustawionych praw podczas próby uruchomienia pojawi się komunikat w rodzaju: “You don’t have permission to execute /cgi-bin/ demo.pl…”;. Po nadaniu odpowiednich uprawnień skrypt zacznie działać poprawnie. Każde zamówienie złożone w naszym sklepie powinno zostać potwierdzone informacją o przyjęciu zamówienia lub komunikatem o błędzie.

Wszystkie skrypty Perla rozpoczynają się wierszem wskazującym lokalizację interpretera. Z tego powodu zanim umieścimy własne skrypty na serwerze WWW naszego dostawcy usług internetowych, musimy dowiedzieć się, jaka jest ścieżka dostępu do katalogu, w którym znajduje się Perl.

W systemie Linux początkowa linia zwykle ma następującą postać:

#!/usr/bin/perl

. W Windows pierwsza linia może wyglądać na przykład tak:

#!c:perl\inperl.exe

Zmienne

Programy napisane w Perlu odstraszają swoim wyglądem początkujących adeptów programowania. Są pełne tajemniczych i niezrozumiałych symboli. Aby wejść w świat Perla, musimy się z nimi zapoznać.

Znak dolara $ służy do definiowania zmiennych, które w danym momencie mogą mieć tylko jedną wartość (w odróżnieniu od tablic – patrz: dalej). Zmienna taka może być liczbą w dowolnym formacie lub łańcuchem tekstowym i nosi nazwę zmiennej skalarnej (w odróżnieniu od tablic oraz tablic asocjacyjnych – patrz: dalej). Obowiązuje tutaj jedna zasada: tekst musi być ujęty w cudzysłów, liczby – nie. Ważne jest, aby każde przypisanie zakończyło się średnikiem (;).

$liczba=1.234567;$tekst="Witaj świecie";

Raz zdefiniowaną zmienną możemy później wykorzystać w dowolnym miejscu programu.

Print "To jest moje pozdrowienie: $tekst ";

Powyższa komenda wyświetla na ekranie (ściśle mówiąc na tzw. standardowym urządzeniu wyjścia) tekst To jest moje pozdrowienie: Witaj świecie i przenosi kursor do nowego wiersza (). Taki sam efekt uzyskamy za pomocą polecenia:

Print "To jest moje pozdrowienie:".$tekst. "";

Natomiast komenda

Print 'To jest moje pozdrowienie: $tekst ';

sprawi, że na monitorze pojawia się napis To jest moje pozdrowienie: $tekst . Użycie apostrofów powoduje, że znajdujący się w ich wnętrzu ciąg znaków jest interpretowany wprost. Gdy używamy cudzysłowów, konstrukcje oznaczające zmienne (np. $tekst czy $lista[0] ) oraz znaki specjalne (poprzedzone odwrotnym ukośnikiem – np. ) są zamieniane na odpowiadające im wartości

W Perlu znak popularnej “małpy”

@

nie ma nic wspólnego z pocztą elektroniczną, a służy do definiowania tablic. Tablica może zawierać liczby, łańcuchy tekstowe lub mieszankę jednych i drugich. Poniżej definiujemy tablicę o nazwie lista, która przechowuje trzy łańcuchy znakowe.

@lista=("To jest", "moje poranne pozdrowienie", "moje wieczorne pozdrowienie");

Pozycja zmiennej w obrębie listy określana jest przez liczbę podawaną w nawiasie kwadratowym. Numeracja rozpoczyna się zawsze od zera. Polecenie

Print "$lista[0] $lista[2]";

wyświetla na ekranie monitora napis To jest moje wieczorne powitanie Symbol procentu % służy do tworzenia tablic asocjacyjnych będących tabelą par wartości. Każda taka para składa się z klucza i wartości. W tablicach do poszczególnych wartości odwoływaliśmy się, podając w nawiasach kwadratowych liczbę – tutaj należy podać klucz w nawiasach klamrowych.

%para_wartości=("nazwisko", "Cezar","imię","Juliusz", "narodowość","Rzymianin", "wiek",2100);

Perl pozwala też zdefiniować listę par wartości w bardziej przejrzystej formie:

%osoba=("nazwisko"=>"Caesar" ,"imię"=>"Julius","narodowość"=> "Rzymianin","wiek"=>2100);

Następujące polecenia:

print "Nazwisko:% osoba{ 'nazwisko'}";print "Imię:% osoba{'imię'}";print "Wiek:%para_wartości{'wiek' }";

wyświetlą tekst:

Nazwisko: CaesarImię: JuliusWiek: 2100

Gwiazdka * określa globalny typ danych i oznacza, że zmienna może mieć dowolny format: skalarny, tablicy lub tablicy asocjacyjnej.

Po zapoznaniu się z typami zmiennych możemy przystąpić do napisania prostego skryptu w Perlu. Kod skryptu piszemy, korzystając z edytora tekstu, i zachowujemy go w pliku, na przykład pod nazwą test.pl. Następnie przechodzimy do folderu, w którym zapisaliśmy skrypt, i uruchamiamy go, wydając z linii komend (w Windows lini poleceń trybu MS–DOS) komendę perl test.pl .

Możemy tak postąpić z przykładowym skryptem demo.pl. Ponieważ jest on przeznaczony do uruchamiania za pośrednictwem serwera WWW i podczas ręcznego uruchomienia nie są przekazane żadne dane z formularza, w oknie DOS-a pojawi się jedynie kod HTML z komunikatem o błędzie.

Spróbujmy teraz przyjrzeć się dokładniej skryptowi demo.pl. Po pierwszym wierszu występuje kilka linii komentarza wygenerowanych przez Perl Buildera i rozpoczynających się symbolem #. Nie mają one żadnego wpływu na działanie programu.

Pierwszy wiersz, który nas interesuje, rozpoczyna się symbolem, z jakim jeszcze się nie zetknęliśmy: znak & oznacza, że teraz nastąpi odwołanie do podprogramu (procedury) o nazwie GetFormInput. Podprogram ten znajduje się na końcu skryptu i rozpoczyna się wierszem sub GetFormInput. Wszystko, co znajduje się poniżej, w nawiasach klamrowych, może u nowicjusza wywołać ból głowy. Nie musimy jednak rozumieć wszystkich detali skryptu. Wiele procedur, jak na przykład te do obsługi formularzy, zostało już przez kogoś napisanych. Nie ma sensu pisanie ich od nowa – wystarczy umieć z nich korzystać (oczywiście jeśli pozwalają na to ich autorzy).

Info
Grupy dyskusyjne
Uwagi i komentarze do artykułu:
#
Pytania techniczne:
#
#
Internet
Perl Builder:http://www.solutionsoft.com/perl.htm
Wszystko o Perlu:#
FAQ:http://www.kt.agh.edu.pl/other/perl/faq/
Kursy Perla
http://www.kt.agh.edu.pl/other/perl/
http://pipeta.chemia.pk.edu.pl/Perl/
http://hostidc.idc.com.pl/~siwy/perl.htm
http://www.snj.digimer.pl/artykuly.html
CGI-FAQ:http://web.pertus.com.pl/tech/perl-cgi-faq.htm
W dziale Internet | Workshop: język Perl znajdują się Active Perl 5.6 oraz pliki omawianej bazy danych
Więcej:bezcatnews