Perl. Od podstaw - Helion
Tytuł oryginału: Beginning Perl
Tłumaczenie: Rafał Bielec, Adam Osuchowski, Rafał Szpoton
ISBN: 83-7197-496-5
stron: 656, Format: B5, okładka: miękka
Data wydania: 2003-01-08
Księgarnia: Helion
Cena książki: 69,00 zł
Perl to uniwersalny, wygodny i niezwykle elastyczny język programowania. Jego rozwój, wspierany przez rzeszę programistów, doprowadził do stworzenia narzędzia o ogromnych możliwościach dostępnego dla prawie wszystkich systemów operacyjnych. Jest to język wyjątkowy, gdyż pozwala programiście na wybór własnego stylu pisania kodu, nie narzucając "jedynie słusznych" rozwiązań. Dzięki tej zalecie Perl cieszy się wielką popularnością wśród osób nie zajmujących się zawodowo programowaniem (np. administratorów czy webmasterów). Kilka tysięcy darmowych modułów dodatkowo poszerza potencjał Perla.
Książka "Perl. Od podstaw" przedstawia szeroki zakres zastosowań tego języka. Nauczysz się z niej instalować Perla w różnych systemach operacyjnych, poznasz podstawowe konstrukcje języka: instrukcje, wyrażenia regularne i moduły, dowiesz się jak korzystać z baz danych za pomocą Perla i jak pisać skrypty CGI.
Dla kogo adresowana jest ta książka?
Książka przeznaczona jest dla wszystkich, którzy chcą poznać język Perl. Jeśli masz już doświadczenie programistyczne, będzie Ci łatwiej ją czytać; jeśli Perl jest Twoim pierwszym językiem programowania, bez trudu przebrniesz przez tą lekturę.
Książka zawiera:
- Pełen kurs języka Perl (zarówno dla Windows jak i dla Uniksa)
- Opis korzystania z dodatkowych modułów dostępnych w sieci
- Opis składni Perla
- Sposoby wykorzystania plików i baz danych w Perlu
- Omówienie programowania skryptów CGI
- Wykorzystanie Perla jako języka zorientowanego obiektowo
Osoby które kupowały "Perl. Od podstaw", wybierały także:
- Perl. Mistrzostwo w programowaniu 44,00 zł, (22,00 zł -50%)
- Wielkie umysły programowania. Jak myślą i pracują twórcy najważniejszych języków 79,00 zł, (47,40 zł -40%)
- Learning Perl. Making Easy Things Easy and Hard Things Possible. 7th Edition 169,00 zł, (118,30 zł -30%)
- 100 sposobów na Perl 39,00 zł, (29,25 zł -25%)
- Mastering Perl. 2nd Edition 167,03 zł, (143,65 zł -14%)
Spis treści
Perl. Od podstaw -- spis treści
O Autorach (13)
Wstęp (15)
- Krótka historia (15)
- Dlaczego Perl? (16)
- Perl jest darmowy (17)
- Do czego Perl jest używany? (18)
- Windows, Unix i inne systemy operacyjne (19)
- Znak zachęty (20)
- Co jest potrzebne, by korzystać z tej książki? (20)
- Jak mogę zdobyć Perla? (21)
- Instalacja Perla w Linuksie i Uniksie (21)
- Instalacja w Windows (23)
- Problemy w Windows (24)
- Jak uzyskać pomoc (26)
- Perldoc (26)
- Strony podręcznika (27)
- Zasoby Perla (29)
- Witryny WWW (29)
- Grupy dyskusyjne (30)
- IRC (30)
- Książki (30)
- Jak mogę zdobyć Perla? (21)
- Konwencje (31)
- Pobieranie kodu źródłowego (32)
- Przykłady (32)
Rozdział 1. Pierwsze kroki w Perlu (33)
- Języki programowania (33)
- Kod źródłowy interpretowany i kompilowany (35)
- Biblioteki, moduły i pakiety (36)
- Dlaczego Perl jest tak potężnym językiem? (37)
- Jest naprawdę prosty (37)
- Naszym hasłem jest elastyczność (37)
- Perl w witrynach WWW (37)
- Próba darmowych źródeł (38)
- Wersje rozwojowe i Topaz (38)
- Nasz pierwszy program w Perlu (40)
- Struktura programu (44)
- Dokumentowanie swoich programów (44)
- Słowa kluczowe (45)
- Instrukcje i bloki instrukcji (45)
- Struktura programu (44)
- ASCII i Unikod (47)
- Sekwencje specjalne (48)
- Białe spacje (48)
- Systemy numeryczne (48)
- Program uruchomieniowy Perla (50)
- Ćwiczenia (50)
Rozdział 2. Praca z prostymi wartościami (51)
- Typy danych (51)
- Liczby (52)
- Liczby dwójkowe, szesnastkowe i ósemkowe (54)
- Łańcuchy znakowe (56)
- Pojedynczo i podwójnie cytowane łańcuchy (56)
- Alternatywne ograniczniki (58)
- Dokumenty w miejscu (59)
- Konwersja pomiędzy liczbami i łańcuchami (60)
- Liczby (52)
- Operatory (61)
- Operatory numeryczne (61)
- Operatory arytmetyczne (61)
- Operatory bitowe (64)
- Prawda i fałsz (66)
- Operatory logiczne (69)
- Operatory łańcuchowe (napisowe) (71)
- Porównywanie napisów (73)
- Operatory, które poznamy później (74)
- Priorytety operatorów (75)
- Operatory numeryczne (61)
- Zmienne (76)
- Zmiana zawartości zmiennych (76)
- Jednoczesne operacje z przypisaniem (78)
- Autoinkrementacja i autodekrementacja (78)
- Wielokrotne przypisania (80)
- Zasięg zmiennych (80)
- Nazwy zmiennych (83)
- Zmiana zawartości zmiennych (76)
- Interpolacja zmiennych (83)
- Konwerter walut (85)
- Wstęp do <STDIN> (86)
- Konwerter walut (85)
- Ćwiczenia (87)
Rozdział 3. Listy i tablice asocjacyjne (89)
- Listy (89)
- Proste listy (90)
- Bardziej złożone listy (91)
- Dostęp do wartości na listach (94)
- Dzielenie listy (96)
- Przedziały (97)
- Używanie zakresów podczas podziału listy (99)
- Tablice (100)
- Przypisywanie wartości do tablic (100)
- Kontekst listy i kontekst skalarny (102)
- Dodawanie elementów do tablicy (103)
- Dostęp do elementów w tablicy (104)
- Dostęp do pojedynczych elementów (104)
- Dostęp do wielu elementów tablicy (107)
- Operacje na tablicach (109)
- Funkcje związane z tablicami (112)
- Tablice asocjacyjne (116)
- Tworzenie tablicy asocjacyjnej (117)
- Operacje na wartościach tablicy asocjacyjnej (118)
- Dodawanie wartości do tablicy asocjacyjnej oraz jej zmiana i usuwanie (120)
- Dostęp do większej liczby wartości w tablicach asocjacyjnych (121)
- Ćwiczenia (122)
Rozdział 4. Pętle i decyzje (123)
- Decydowanie, czyli użycie "if" (124)
- Powtórzenie wiadomości o operacjach logicznych (128)
- Porównywanie liczb (129)
- Porównywanie ciągów (130)
- Inne sprawdzenie (131)
- Łączenia logiczne (132)
- Uruchom jeśli nie... (133)
- Modyfikatory wyrażenia (133)
- Konstrukcje logiczne (134)
- Wielokrotny wybór (134)
- If elsif else (135)
- Rozwiązanie bardziej eleganckie (137)
- Powtórzenie wiadomości o operacjach logicznych (128)
- 1, 2, przeskocz ile się da, 99,100 (137)
- Pętle for (138)
- Wybieranie zmiennej iteracyjnej (139)
- Co można zapętlić (140)
- Aliasy i wartości (140)
- Modyfikatory wyrażenia (141)
- Pętle for (138)
- Pętle while (143)
- While (<STDIN>) (144)
- Nieskończone pętle (145)
- Uruchamianie przynajmniej jeden raz (146)
- Zmiana wyrażenia (147)
- Pętla until (147)
- Kontrola nad pętlą (148)
- Wychodzenie (148)
- Omijanie pętli (149)
- Goto (152)
- Ćwiczenia (152)
Rozdział 5. Wyrażenia regularne (153)
- Czym one są? (154)
- Wzorce (154)
- Interpolacja (157)
- Omijanie znaków specjalnych (159)
- Kotwice (160)
- Skróty i opcje (161)
- Posix i Unicode (164)
- Alternatywy (164)
- Powtórzenia (165)
- Tabelka podsumowująca (167)
- Odwołania wsteczne (168)
- Jak działa mechanizm RE (169)
- Wzorce (154)
- Praca z wyrażeniami regularnymi (171)
- Podstawienie (171)
- Zmiana ograniczników (173)
- Modyfikatory (174)
- Split (175)
- Join (176)
- Transformacja (176)
- Podstawowe pomyłki (177)
- Bardziej zaawansowane zagadnienia (177)
- Komentarze wewnętrzne (178)
- Modyfikatory wewnętrzne (178)
- Grupowanie bez odwołań wstecznych (179)
- Patrzenie w przód i w tył (179)
- Odwołania wsteczne (ponownie) (181)
- Ćwiczenia (181)
Rozdział 6. Pliki i dane (183)
- Uchwyty plików (183)
- Odczytywanie linii (185)
- Tworzenie filtrów (186)
- Odczytywanie więcej niż jednej linii (189)
- Jaki jest mój separator linii? (190)
- Odczytywanie akapitów (192)
- Wczytywanie całych plików (193)
- Wpisywanie do plików (193)
- Otwieranie pliku do zapisu (193)
- Zapisywanie do uchwytu pliku (194)
- Dostęp do uchwytów plików (198)
- Zapisywanie plików binarnych (200)
- Wybieranie uchwytu (201)
- Buforowanie (203)
- Prawa dostępu (204)
- Otwieranie potoków (205)
- Wejście potokowe (205)
- Wyjście potokowe (208)
- Sprawdzanie plików (210)
- Katalogi (214)
- Glob (214)
- Odczytywanie katalogów (215)
- Ćwiczenia (216)
Rozdział 7. Odwołania (217)
- Czym jest odwołanie? (217)
- Anonimowość (218)
- "Czas życia" odwołania (219)
- Tworzenie odwołania (219)
- Odwołania anonimowe (220)
- Wykorzystywanie odwołań (222)
- Elementy tablicy (224)
- Zmiana danych wskazywanych przez odwołanie (225)
- Odwołania do tablic asocjacyjnych (226)
- Sposób użycia skrótów (227)
- Zliczanie oraz usuwanie odwołań (230)
- Zliczanie odwołań anonimowych (231)
- Tworzenie odwołania (219)
- Zastosowanie odwołań do struktur złożonych (231)
- Macierze (232)
- Automatyzacja (232)
- Drzewa (236)
- Listy powiązane (239)
- Ćwiczenia (240)
Rozdział 8. Procedury (241)
- Różnica pomiędzy funkcjami i procedurami (242)
- Zazwyczaj (242)
- W Perlu (242)
- Wprowadzenie do procedur (243)
- Tworzenie procedur (243)
- Kolejność deklarowania procedur (245)
- Procedury obliczeniowe (248)
- Parametry i argumenty (248)
- Zwracanie wartości (249)
- Instrukcja return (251)
- Zachowywanie wartości (251)
- Kontekst wywołania procedury (252)
- Prototypy procedur (253)
- Zasięg widoczności zmiennych (255)
- Zmienne globalne (255)
- Zmienne leksykalne (257)
- Zakres uruchomieniowy (258)
- Kiedy używać my(), a kiedy local? (260)
- Przekazywanie bardziej złożonych parametrów (260)
- @_ zawiera aliasy (260)
- Listy są zawsze jednowymiarowe (261)
- Przekazywanie odwołań do procedury (261)
- Przekazywanie tablic zwykłych oraz asocjacyjnych do procedury (262)
- Przekazywanie uchwytów do plików (264)
- Domyślne wartości parametrów (265)
- Parametry nazwane (266)
- Odwołania do procedur (266)
- Deklaracja odwołań do procedur (266)
- Wywoływanie procedury przy użyciu odwołań (266)
- Odwołania zwrotne (267)
- Tablice zawierające odwołania do procedur (268)
- Deklaracja odwołań do procedur (266)
- Rekurencja (268)
- Tworzenie dużych programów (276)
- Ćwiczenia (278)
Rozdział 9. Uruchamianie i testowanie programów w Perlu (279)
- Komunikaty o błędach (280)
- Wskazówki przy wykrywaniu błędów składniowych (281)
- Brakujące średniki (281)
- Brakujące nawiasy (282)
- Niedomknięte łańcuchy (283)
- Brakujący średnik (283)
- Nawiasy wokół wyrażeń warunkowych (283)
- Słowa nierozpoznane (283)
- Wskazówki przy wykrywaniu błędów składniowych (281)
- Moduły diagnostyczne (284)
- Dyrektywa warnings (284)
- Dyrektywa strict (287)
- Dyrektywa diagnostic (290)
- Opcje programu Perl (291)
- -e (292)
- -n oraz -p (293)
- -c (295)
- -i (296)
- -M (297)
- -s (297)
- -I oraz @INC (299)
- -a oraz -F (300)
- -l oraz -O (301)
- -T (301)
- Techniki wykrywania błędów (302)
- Zanim uruchomimy Debuggera (302)
- Komunikaty diagnostyczne (302)
- Minimalizacja ilości kodu (302)
- Kontekst (303)
- Zakres (303)
- Priorytet operacji (303)
- Korzystanie z Debuggera (303)
- Zanim uruchomimy Debuggera (302)
- Poprawne programowanie (304)
- Strategia (304)
- Sprawdź poprawność zwracanych wartości (305)
- Bądź przygotowany na rzeczy niemożliwe (305)
- Nigdy nie ufaj użytkownikowi (306)
- Istnienie danych (306)
- Dodaj pomocne komentarze (306)
- Utrzymuj porządek w kodzie programu (306)
- Strategia (304)
- Ćwiczenia (307)
Rozdział 10. Moduły (309)
- Rodzaje modułów (309)
- Dlaczego potrzebujemy modułów? (310)
- Dołączanie innych plików (311)
- Instrukcja do (311)
- Instrukcja require (311)
- Instrukcja use (312)
- Zmiana tablicy @INC (313)
- Dołączanie innych plików (311)
- Hierarchia pakietów (313)
- Moduł eksportujący (314)
- Moduły standardowe Perla (315)
- File::Find (315)
- Getopt::Std (317)
- Getopt::Long (318)
- File::Spec (319)
- Benchmark (320)
- Win32 (321)
- Archiwum CPAN (323)
- Instalowanie modułów przy użyciu PPM (325)
- Samodzielna instalacja modułów (325)
- Moduł CPAN (327)
- Paczki (331)
- Bundle::LWP (332)
- Bundle::libnet (333)
- Umieszczanie własnych modułów w archiwum CPAN (333)
Rozdział 11. Programowanie obiektowe w Perlu (335)
- Praca z obiektami (335)
- Przekształcanie zadań w programy obiektowe (336)
- Czy Twoje procedury opisują zadania? (336)
- Czy dane mają być trwałe? (336)
- Czy potrzebujesz sesji? (337)
- Czy potrzebujesz obiektowości? (337)
- Czy chcesz ukryć obiekty przed użytkownikiem? (337)
- Czy wciąż nie jesteś pewien? (337)
- Poszerzanie zasobu słownictwa (337)
- Obiekty (338)
- Właściwości (338)
- Metody (339)
- Klasy (339)
- Polimorfizm (340)
- Hermetyzacja (341)
- Dziedziczenie (341)
- Konstruktory (342)
- Destruktory (343)
- Przekształcanie zadań w programy obiektowe (336)
- Tworzenie własnych obiektów (346)
- Stosowanie operatora bless (347)
- Przechowywanie właściwości (349)
- Konstruktor (350)
- Używanie dziedziczenia (351)
- Inicjalizowanie właściwości (351)
- Tworzenie metod (353)
- Rozróżnianie metod klasy oraz obiektu (355)
- Metody zmieniające wartość właściwości (356)
- Właściwości klasy (357)
- Tworzenie metod prywatnych (360)
- Metody użytkowe (362)
- "Śmierć" obiektu (364)
- Nasza ukończona klasa (364)
- Dziedziczenie (366)
- Co to jest (367)
- Dodawanie nowych metod (368)
- Nadpisywanie metod (369)
- Wiązania (372)
- Ćwiczenia (377)
Rozdział 12. Wprowadzenie do CGI (379)
- Jak zabrać się do pracy? (379)
- Konfiguracja CGI w systemie UNIX (380)
- Apache (380)
- Uruchamianie i zatrzymywanie Apache'a (380)
- Katalogi DocumentRoot oraz cgi-bin (381)
- Konfiguracja CGI w systemie Windows (382)
- Internet Information Server (382)
- PersonalWebServer (383)
- Używanie serwerów WWW w systemie Windows (384)
- Konfiguracja CGI w systemie UNIX (380)
- Tworzenie skryptów CGI (384)
- Podstawy CGI (384)
- Zwykły tekst (385)
- Kod HTML (385)
- Środowisko CGI (388)
- Polecenia HTTP (390)
- Metoda GET (391)
- Metoda POST (392)
- Podstawy CGI (384)
- Tworzenie interakcyjnych skryptów CGI (392)
- Przykład oparty na formularzu (393)
- Przekazywanie parametrów przy użyciu CGI.pm (393)
- Określanie metody HTTP (395)
- Określanie środowiska wykonania (395)
- Tworzenie kodu HTML (396)
- Kolejne podejście do problemu zmiennych środowiskowych (401)
- Tworzenie nagłówka HTTP (402)
- Tworzenie nagłówka dokumentu (404)
- Tworzenie czytelnego kodu HTML (406)
- Tworzenie formularzy HTML (408)
- Tworzenie adresów URL odwołujących się do siebie samych (409)
- Tworzenie i przetwarzanie formularzy przy użyciu jednego skryptu (411)
- Zachowywanie i odtwarzanie stanu CGI (413)
- Przeadresowywanie ze skryptu CGI (416)
- Odświeżanie zawartości stron przy wykorzystaniu metody push (416)
- Ciasteczka oraz śledzenie sesji (420)
- Przykład oparty na formularzu (393)
- Testowanie skryptów CGI (425)
- Zastosowanie CGI.pm do testowania skryptów w wierszu poleceń (426)
- Bezpieczeństwo CGI (427)
- Przykład niebezpiecznego skryptu CGI (427)
- Uruchamianie zewnętrznych programów (429)
- Komunikacja z zewnętrznymi programami (430)
- Sprawdzanie potencjalnie niebezpiecznych zmiennych (431)
- Przykład bardziej bezpiecznego skryptu CGI (433)
- Separacja programów CGI (434)
- Najważniejsze zasady bezpieczeństwa (435)
Rozdział 13. Współpraca Perla z bazami danych (437)
- Moduł DBM (438)
- Którą implementację DBM zastosować? (438)
- Korzystanie z baz danych DBM (439)
- Otwieranie bazy danych (440)
- Sprawdzanie stanu bazy danych DBM (441)
- Tworzenie baz danych typu DBM (441)
- Usuwanie zawartości bazy danych typu DBM (442)
- Zamykanie bazy danych DBM (442)
- Dodawanie wpisów do bazy DBM i ich zmienianie (442)
- Odczytywanie wpisów z bazy danych (443)
- Usuwanie danych z bazy (443)
- Tworzenie przenośnych programów z wykorzystaniem modułu AnyDB (448)
- Przenoszenie danych pomiędzy różnymi formatami (450)
- Przechowywanie złożonych danych (450)
- Wielopoziomowe bazy DBM (MLDBM) (451)
- Wykraczając poza płaskie pliki oraz bazy DBM (455)
- Wprowadzenie do relacyjnych baz danych (455)
- Wprowadzenie do DBI (456)
- Czego potrzebujemy? (457)
- Instalacja DBI (458)
- Dostępne sterowniki (460)
- Nasz wybór - MySQL (463)
- Instalacja w systemie Windows (464)
- Instalacja w systemie Linux (464)
- Konfiguracja konta administratora (466)
- Testowanie serwera MySQL (466)
- Instalacja DBD::MySQL (467)
- Ponownie dostępne sterowniki? (467)
- Czego potrzebujemy? (457)
- Pierwsze kroki - cykl używania bazy danych (467)
- Nawiązywanie połączenia z bazą danych (468)
- Nawiązywanie połączenia ze zdalną bazą danych (469)
- Nawiązywanie połączenia przy użyciu środowiska (470)
- Czwarty parametr - Znaczniki połączenia (471)
- Rozłączanie z bazą danych (472)
- Wykorzystywanie bazy danych (473)
- Tworzenie tabeli (475)
- Dodawanie informacji do tabeli (479)
- Krótka uwaga na temat używania cudzysłowów (481)
- Uaktualnianie danych w tabeli (483)
- Odczytywanie informacji z bazy danych (485)
- Gdzie umieszczane są rekordy? (487)
- Pobieranie pojedynczej wartości (489)
- Dowiązywanie kolumn (490)
- Pobieranie wszystkich wyników (491)
- Pobieranie z instrukcji informacji o kolumnach (492)
- Usuwanie informacji z tabeli (494)
- Nawiązywanie połączenia z bazą danych (468)
- Rzeczy, o których nie wspomnieliśmy (494)
Rozdział 14. Świat Perla (497)
- IPC oraz zagadnienia sieciowe (498)
- Uruchamianie programów (499)
- System (499)
- Procesy oraz IPC (502)
- Sygnały (502)
- Przechwytywanie sygnałów (504)
- Funkcje fork, wait oraz exec (505)
- Zagadnienia sieciowe (506)
- Adresy IP (507)
- Gniazda i porty (507)
- System nazw domen (DNS) (508)
- Klienty sieciowe (509)
- Tworzenie klientów (510)
- IO::Socket (510)
- Blokowanie gniazd oraz moduł IO::Select (511)
- Serwery używające IO::Socket (512)
- Uruchamianie programów (499)
- Interfejsy graficzne (515)
- Widgety (516)
- Perl/Tk (516)
- Perl/GTK+ oraz Perl/GNOME (517)
- Glade (517)
- Perl/Qt (519)
- Moduł Perla Win32 (519)
- Moduł Math (519)
- BigInt oraz BigFloat (520)
- Język danych Perla (PDL) (524)
- Prosta trygonometria (524)
- Dołączanie obsługi liczb zespolonych (526)
- Bezpieczeństwo oraz kryptografia (527)
- Crypt - bezpieczeństwo haseł (527)
- Kryptografia z wykorzystaniem klucza publicznego (529)
- Praca z danymi (532)
- LDAP (532)
- Różne typy danych - sposób ich prezentacji (533)
- Praca w sieci (534)
- Pliki dzienników (534)
- PerlScript (534)
- Komunikacja z C (535)
- Stosowanie C w programach Perla (535)
- Osadzanie kodu Perla (536)
- To dopiero początek (536)
Dodatek A Wyrażenia regularne (537)
Dodatek B Zmienne specjalne (545)
Dodatek C Wykaz funkcji (551)
Dodatek D Moduły standardowe (575)
Dodatek E Wykaz opcji wiersza poleceń (585)
Dodatek F Zestaw znaków ASCII (589)
Dodatek G Licencje (597)
Dodatek H Rozwiązania ćwiczeń (607)
Skorowidz (627)