
Umiesz programować w Perlu, lecz czujesz pewien niedosyt? Pracujesz nad większym projektem niż zazwyczaj i jesteś zagubiony? A może chciałbyś dodać do swojej aplikacji efektowny interfejs użytkownika, bardziej zaawansowany mechanizm przechwytywania błędów lub obsługę sieci i nie wiesz jak to zrobić?Ta książka pomoże Ci stać się lepszym programistą bez względu na to, czy Twoja znajomość Perla jest powierzchowna, czy dogłębna. Nauczysz się zaawansowanych technik przygotowywania programów w Perlu o jakości produkcyjnej. Poznasz metody przetwarzania danych i używania obiektów, które wcześniej mogły wydawać Ci się czarną magią. Książka przedstawia szerokie zastosowania Perla: od sieci, baz danych, po interfejsy użytkownika. Znajdziesz w niej także opis wewnętrznych mechanizmów języka umożliwiających tworzenie wydajniejszych aplikacji oraz łączenie Perla z językiem C.
Do najważniejszych tematów poruszanych w książce należą:
- Praktyczne zastosowania pakietów i klas (programowanie obiektowe)
- Złożone struktury danych
- Trwałość danych (np. bazy danych)
- Sieci
- Interfejsy graficzne budowane za pomocą pakietu Tk
- Interakcja z funkcjami języka C
- Osadzanie i rozszerzanie interpretera Perla
- Wybrane aspekty wewnętrznych mechanizmów Perla
"Nieprzeciętny tekst i najbardziej zaawansowana książka o Perlu, jaką napisano. Autor -- specjalista -- objaśnia trudne koncepcje w sposób klarowny i kompletny."
Jon Orwant, redaktor The Perl Journal

Przedmowa (11)
Rozdział 1. Odwołania do danych i anonimowa pamięć (23)
- Odwoływanie się do istniejących zmiennych (25)
- Korzystanie z odwołań (30)
- Zagnieżdżone struktury danych (35)
- Odpytywanie odwołania (37)
- Odwołania symboliczne (38)
- Spojrzenie na wewnętrzną konstrukcję (39)
- Odwołania w innych językach (43)
- Źródła informacji (44)
- Struktury definiowane przez użytkownika (46)
- Przykłady: macierze (47)
- Wykładowcy, studenci i przedmioty (50)
- A teraz otwórzmy kopertę z decyzją jury... (54)
- Upiększone drukowanie (56)
- Źródła informacji (59)
- Zmienne, tablica symboli oraz zakresy w Perlu (62)
- Typeglob (65)
- Typy typeglob a odwołania (69)
- Uchwyty plików i katalogów oraz formaty (71)
- Odwołania do podprocedur (76)
- Korzystanie z odwołań do podprocedur (77)
- Domknięcia (80)
- Używanie domknięć (83)
- Porównanie z innymi językami (88)
- Źródła informacji (89)
- Wywołanie z łańcuchem: ewaluacja wyrażeń (92)
- Wywołanie z blokiem: obsługa wyjątków (94)
- Uwaga na cudzysłów (96)
- Ewaluacja wyrażeń za pomocą eval (97)
- Zwiększanie wydajności za pomocą eval (99)
- Odliczanie czasu za pomocą eval (104)
- Eval w innych językach (105)
- Źródła informacji (107)
- Podstawowy pakiet (109)
- Pakiety i pliki (111)
- Inicjalizacja i destrukcja pakietów (113)
- Prywatność (114)
- Importowanie symboli (115)
- Zagnieżdżanie pakietów (118)
- Automatyczne ładowanie (119)
- Dostęp do tablicy symboli (120)
- Porównania z innymi językami (121)
- OO: wprowadzenie (125)
- Obiekty w Perlu (127)
- UNIVERSAL (140)
- Powtórka z konwencji (141)
- Porównanie z innymi językami obiektowymi (145)
- Źródła informacji (147)
- Wydajne zapisywanie atrybutów (149)
- Delegacja (160)
- O dziedziczeniu (161)
- Źródła informacji (163)
- Dowiązywanie skalarów (166)
- Dowiązywanie tablic (169)
- Dowiązywanie tablic asocjacyjnych (171)
- Dowiązywanie uchwytów plików (172)
- Przykład: monitorowanie zmiennych (173)
- Porównania z innymi językami (177)
- Aspekty trwałości (179)
- Dane strumieniowe (182)
- Dane ukierunkowane na rekordy (185)
- Relacyjne bazy danych (187)
- Źródła informacji (193)
- Adaptor: wprowadzenie (197)
- Uwagi na temat architektury (200)
- Implementacja (206)
- Źródła informacji (214)
- Wstęp do sieci (215)
- Interfejs gniazd i IO::Socket (217)
- Obsługa wielu klientów (219)
- Prawdziwe serwery (225)
- Obiekty wejścia-wyjścia i uchwyty plików (226)
- Gotowe moduły klientów (227)
- Źródła informacji (229)
- Msg: zestaw narzędzi do przesyłania komunikatów (231)
- Wywoływanie zdalnych procedur (RPC) (243)
- Źródła informacji (249)
- Wprowadzenie do graficznych interfejsów użytkownika, Tk oraz modułu Perl/Tk (252)
- Pierwszy program w Perl/Tk (253)
- Przegląd widgetów (256)
- Zarządzanie geometrią (273)
- Liczniki czasu (276)
- Dowiązywanie zdarzeń (277)
- Pętle zdarzeń (279)
- Źródła informacji (280)
- Wprowadzenie do gry Tetris (282)
- Konstrukcja (282)
- Implementacja (284)
- man i perlman (292)
- Implementacja (293)
- Źródła informacji (299)
- O generowaniu kodu (301)
- Przykład działania struktury Jeeves (304)
- Przegląd architektury Jeeves (308)
- Implementacja Jeeves (311)
- Przykładowy analizator składniowy specyfikacji (318)
- Źródła informacji (319)
- Pisanie rozszerzenia: omówienie (322)
- Przykład: fraktale w Perlu (325)
- Cechy oprogramowania SWIG (328)
- Cechy oprogramowania XS (331)
- Różne stopnie swobody (335)
- Dygresja: fraktale (335)
- Źródła informacji (339)
- Po co osadzać? (341)
- Ogólne informacje o osadzaniu (343)
- Przykłady (344)
- Dodawanie rozszerzeń (348)
- Źródła informacji (349)
- Czytanie kodu źródłowego (352)
- Architektura (353)
- Typy wartości Perla (360)
- Stosy i protokół przekazywania komunikatów (382)
- Soczyste rozszerzenia (389)
- Łatwy interfejs do osadzania (399)
- Spojrzenie na przyszłość (401)
- Źródła informacji (402)
- Button (przycisk) (405)
- Canvas (pole graficzne) (405)
- Entry (wprowadzanie tekstu) (410)
- Listbox (Lista wyboru) (412)
- Menu (414)
- Paski przewijania i przewijanie (415)
- Scale (skala) (417)
- HList - lista hierarchiczna (417)
- Odwołania (419)
- Zagnieżdżone struktury danych (420)
- Domknięcia (421)
- Moduły (421)
- Obiekty (422)
- Operacje dynamiczne (423)
- Obsługa wyjątków (424)
- Metainformacje (424)
- Typy typeglob (424)
- Uchwyty plików, formaty (425)