NAZWA
perl - Praktyczny język ekstrakcji i raportowania
SKŁADNIA
perl |
[ -sTuU ] [ -hv ] [ -V[:zmienna_conf] ] |
[ -cw ] [ -d[:debugger] ] [ -D[numer/lista] ]
[ -pna ] [ -Fwzorzec ] [ -l[octal] ] [ -0[liczba_ósemkowa] ]
[ -Ikatalog ] [ -m[-]moduł ] [ -M[-]’moduł...’ ]
[ -P ] [ -S ]
[ -x[katalog] ]
[ -i[rozszerzenie] ]
[ -e ’polecenie’ ] [ -- ] [ plik_z_programem ] [ argument ]...
Jeśli jesteś nowicjuszem Perla, powinieneś zacząć od perlintro(1), zawierającego ogólne informacje dla początkujących i dostarczającego informacji mogących pomóc ci nawigować po reszcie szczegółowej dokumentacji Perla.
Dla ułatwienia dostępu, podręcznik Perla został podzielony na kilka sekcji:
Przegląd
perl(1)
Przegląd możliwości Perla (ta sekcja)
perlintro(1) Wstęp do Perl dla
początkujących
perltoc(1) Spis treści dokumentacji
Przewodniki
perlreftut(1)
Szybkie wprowadzenie do referencji
perldsc(1) Wstęp do struktur danych
perllol(1) Struktury danych Perla: listy list
perlrequick(1)
Szybkie wprowadzenie do wyrażeń regularnych
perlretut(1) Podręcznik wyrażeń
regularnych
perlboot(1)
Podręcznik OO Perla dla początkujących
perltoot(1) Podręcznik OO Perla,
część 1
perltooc(1) Podręcznik OO Perla,
część 2
perlbot(1) Sztuczki OO wraz z przykładami
perlstyle(1) Przewodnik po stylu Perla
perltrap(1)
Pułapki dla nieuważnych
perldebtut(1) Przewodnik debuggowania Perla
perlfaq(1)
Często zadawane pytania
perlfaq1(1) Ogólne pytania dotyczące Perla
perlfaq2(1) Uzyskiwanie Perla i nauka
perlfaq3(1) Narzędzie programistyczne
perlfaq4(1) Manipulowanie danymi
perlfaq5(1) Pliki i formaty
perlfaq6(1) Wyrażenia regularne
perlfaq7(1) Sprawy związane z językiem
perlfaq8(1) Oddziaływanie z systemem
perlfaq9(1) Sieć
Reference Manual
perlsyn(1)
Składnia
perldata(1) Struktury danych
perlop(1) Operatory Perla i priorytety
perlsub(1) Podprocedury
perlfunc(1) Wbudowane funkcje
perlopentut(1) Podręcznik funkcji open()
perlpacktut(1) Podręcznik funkcji pack() i unpack()
perlpod(1) Czysta stara dokumentacja
perlpodspec(1) Format czystej starej dokumentacji
perlrun(1) Wywoływanie Perla i opcje
perldiag(1) Komunikaty diagnostyczne
perllexwarn(1) Ostrzeżenia Perla i ich kontrola
perldebug(1) Debugowanie
perlvar(1) Predefiniowane zmienne
perlre(1) Wyrażenia regularne, reszta
opowieści
perlref(1) Referencje, reszta opowieści
perlform(1) Formaty
perlobj(1) Obiekty Perla
perltie(1) Obiekty ukryte za prostymi zmiennymi
perldbmfilter(1) Filtry DBM
perlipc(1)
Komunikacja międzyprocesowa
perlfork(1) Informacje o funkcji fork()
perlnumber(1) Semantyka liczb w Perlu
perlthrtut(1)
Podręcznik wątków Perla
perlothrtut(1) Stary podręcznik wątków
Perla
perlport(1)
Podręcznik przenaszalności Perla
perllocale(1) Wsparcie dla ustawień narodowych
perluniintro(1) Wprowadzenie do Unikodu w Perlu
perlunicode(1) Wsparcie dla Unikodu w Perlu
perlebcdic(1) Używanie Perla na platformach
EBCDIC
perlsec(1) Bezpieczeństwo
perlmod(1)
Moduły Perla: jak działają
perlmodlib(1) Moduły Perla: jak pisać i
używać
perlmodstyle(1) Moduły Perla: jak pisać ze
stylem
perlmodinstall(1) Moduły Perla: jak
zainstalować z archiwum CPAN
perlnewmod(1) Moduły Perla: przygotowanie nowego
modułu do dystrybucji
perlutil(1) Narzędzie użytkowe znajdujące się w dystrybucji Perla
perlcompile(1) Wstęp do zestawu do kompilowania Perla
perlfilter(1) Filtry źródeł Perla
Funkcje wewnętrze i interfejs języka C
perlembed(1)
Jak załączyć Perl do aplikacji C lub C++
perldebguts(1) Wskazówki dotyczące
debuggowania Perla
perlxstut(1) Podręcznik XS
perlxs(1) API interfejsu XS
perlclib(1) Funkcje wewnętrzne
zastępujące standardowe funkcje biblioteki C
perlguts(1) Wewnętrzne funkcje dla tych,
którzy robią rozszerzenia
perlcall(1) Konwencje wołania z C
perlapi(1)
Lista funkcji API (wygenerowana automatycznie)
perlintern(1) Wewnętrzne funkcje Perla
(wygenerowane automatycznie)
perliol(1) API w C implementacji
wejścia/wyjścia w Perlu przy użyciu warstw
(layers)
perlapio(1) Abstrakcyjny, wewnętrzny interfejs
Perla dla wejścia/wyjścia
perlhack(1) Przewodnik hakerów Perla
Różnorodne
perlbook(1)
Informacje o książkach
perltodo(1) Rzeczy do zrobienia w nowszych wersjach
Perla
perlhist(1)
Historia Perla
perldelta(1) Zmiany od ostatniej wersji
perl572delta(1) Zmiany w wersji 5.7.2 Perla
perl571delta(1) Zmiany w wersji 5.7.1 Perla
perl570delta(1) Zmiany w wersji 5.7.0 Perla
perl561delta(1) Zmiany w wersji 5.6.1 Perla
perl56delta(1) Zmiany w wersji 5.6 Perla
perl5005delta(1) Zmiany w wersji 5.005 Perla
perl5004delta(1) Zmiany w wersji 5.004 Perla
Specyficzne dla języka
perlcn(1)
Perl dla Chińczyków (uproszczony chiński, w
EUC-CN)
perljp(1) Perl dla Japończyków (w EUC-JP)
perlko(1) Perl dla Koreańczyków (w EUC-KR)
perltw(1) Perl for Chińczyków (tradycyjny
chiński, w Big5)
Specyficzne dla systemu
perlaix(1)
Uwagi do systemu AIX
perlamiga(1) Uwagi do systemu AmigaOS
perlapollo(1) Uwagi do systemu Apollo DomainOS
perlbeos(1) Uwagi do systemu BeOS
perlbs2000(1) Uwagi do systemu POSIX-BC BS2000
perlce(1) Uwagi do systemu WinCE
perlcygwin(1) Uwagi do systemu Cygwin
perldgux(1) Uwagi do systemu DG/UX
perldos(1) Uwagi do systemu DOS
perlepoc(1) Uwagi do systemu EPOC
perlfreebsd(1) Uwagi do systemu FreeBSD
perlhpux(1) Uwagi do systemu HP-UX
perlhurd(1) Uwagi do systemu Hurd
perlirix(1) Uwagi do systemu Irix
perlmachten(1) Uwagi do systemu Power MachTen
perlmacos(1) Uwagi do systemu Mac OS (Classic)
perlmint(1) Uwagi do systemu MiNT
perlmpeix(1) Uwagi do systemu MPE/iX
perlnetware(1) Uwagi do systemu NetWare
perlos2(1) Uwagi do systemu OS/2
perlos390(1) Uwagi do systemu OS/390
perlplan9(1) Uwagi do systemu Plan 9
perlqnx(1) Uwagi do systemu QNX
perlsolaris(1) Uwagi do systemu Solaris
perltru64(1) Uwagi do systemu Tru64
perluts(1) Uwagi do systemu UTS
perlvmesa(1) Uwagi do systemu VM/ESA
perlvms(1) Uwagi do systemu VMS
perlvos(1) Uwagi do systemu Stratus VOS
perlwin32(1) Uwagi do systemu Windows
Na systemach
Debiana, należy zainstalować pakiet
perl-doc, który
zawiera większość standardowej dokumentacji
Perla oraz program perldoc(1).
Dostępna jest szczegółowa dokumentacja modułów perla zarówno tych rozprowadzanych z Perlem, jak i tych, które są dostarczane przez dostawców zewnętrznych.
Powinieneś być w stanie oglądać dokumentację Perla swoim programem man(1) lub perldoc(1).
Jeżeli z twoim programem w Perlu dzieje się coś dziwnego i nie wiesz, gdzie szukać pomocy, spróbuj najpierw użyć opcji -w, która bardzo często potrafi pokazać, gdzie dokładnie leży problem.
OPIS
Uwaga! To tłumaczenie może być nieaktualne!
Perl jest językiem interpretowanym, optymalizowanym do skanowania dowolnych plików tekstowych, wyciągania z nich informacji i drukowania raportów opartych na tych danych. Jest też dobrym językiem dla wielu zadań zarządzania systemem. Język miał w założeniach być raczej praktyczny (łatwy, efektywny, kompletny) niż piękny (mały, elegancki, minimalny).
Perl (wg autora) łączy najlepsze właściwości języków C, sed, awk i sh, więc osoby zaznajomione z tymi językami nie powinny mieć z nim problemów. (Historycy języków zauważą także pozostałości csh, Pascala, a nawet BASICa-PLUS ). Składnia wyrażeń odpowiada dość blisko składni C. W przeciwieństwie do większości narzędzi uniksowych, Perl nie ogranicza arbitralnie rozmiaru twoich danych--jeśli masz wolną pamięć, Perl może wessać cały plik jako pojedynczy łańcuch znakowy. Rekurencja jest nieograniczonej głębokości. Tabele używane przez tablice asocjacyjne (tzw. "hasze") rosną tak, by zachować maksymalną wydajność. Perl używa wyrafinowanych metod porównywania wzorców do bardzo szybkiego przeszukania dużej ilości danych. Mimo że jest optymalizowany do zadań tekstowych, może także zajmować się danymi binarnymi i tworzyć pliki dbm wyglądające jak tablice asocjacyjne. Suidowane skrypty Perla są bezpieczniejsze niż programy w C, dzięki mechanizmowi śledzenia przepływających danych, który eliminuje wiele głupich dziur w bezpieczeństwie.
Jeśli masz problem, który normalnie wymagałby użycia seda lub awka, lub sh, lecz przewyższa ich właściwości lub musi działać szybciej i nie chcesz pisać takiej błahostki w C, to Perl jest przypuszczalnie tym, czego szukasz. Jest też wiele translatorów, umożliwiających konwertowanie skryptów seda i awka na skrypty Perla.
Ale czekaj, jest więcej...
Wersja 5 Perla jest właściwie napisana od nowa i daje następujące rzeczy:
• |
modularyzacja i powtórne używanie kodu z pomocą niezliczonych modułów |
Opisane w perlmod(1), perlmodlib(1) i perlmodinstall(1).
• |
zakorzenienie i rozszerzalność |
Opisane w perlembed(1), perlxstut(1), perlxs(1), perlcall(1), perlguts(1) i xsubpp(1).
• |
pozwala zdefiniować właśnie magiczne zmienne (włączając w to wielokrotne równoległe implementacje DBM ) |
Opisane w perltie(1) i AnyDBM_File(3perl).
• |
podprogramy mogą być teraz nadpisywane, ładowane automatycznie i mogą mieć prototypy |
Opisane w perlsub(1).
• |
dowolnie zagnieżdżone struktury danych i funkcje anonimowe |
Opisane w perlreftut(1), perlref(1), perldsc(1) i perllol(1).
• |
programowanie orientowane obiektowo |
Opisane w perlobj(1), perlboot(1), perltoot(1), perltooc(1) i perlbot(1).
• |
wkompilowywanie w kod C lub bajtkod Perla |
Opisane w B(3perl) i B::Bytecode(3perl).
• |
wsparcie dla wątków |
Opisane w perlthrtut(1) i Thread(3perl).
• |
wsparcie dla internacjonalizacji, ustawień językowych i Unikodu |
Opisane w perllocale(1) i utf8(3perl).
• |
zasięg składniowy |
Opisane w perlsub(1).
• |
ulepszenie wyrażeń regularnych |
Opisane w perlre(1) z dodatkowymi przykładami w perlop(1).
• |
ulepszony debugger i interaktywne środowisko Perla ze wsparciem dla zintegrowanego edytora |
Opisane w perldebtut(1), perldebug(1) i perldebguts(1).
• |
biblioteka zgodna z POSIX 1003.1 |
Opisane w POSIX .
OK, to już wystarczająco dużo.
DOSTĘPNOŚĆ
Perl jest dostępny dla większości systemów operacyjnych, włączając w to wszystkie systemy uniksopodobne. Lista znajduje się w rozdziale "Wspierane platformy" w perlport(1).
ŚRODOWISKO
Patrz perlrun(1).
AUTOR
Larry Wall <larry [AT] wall.org>, z pomocą multum innych osób.
Jeżeli Twoje sukcesy w Perlu i referencje mogłyby pomóc innym, którzy by chcieli użyć Perla w swoich programach, lub jeżeli po prostu chcesz wyrazić swoją wdzięczność Larry’emu i twórcom Perla, prosimy pisać do perl-thanks [AT] perl.org .
PLIKI
"@INC" lokalizacje bibliotek Perla
ZOBACZ TAKŻE
a2(1) translator awk na perl s2p(1) translator seda na perl http://www.perl.com/ strona domowa Perla http://www.cpan.org/ archiwum CPAN http://www.perl.org/ Perl Mongers (grupy użytkowników Perla)
DIAGNOSTYKA
Pragma "use warnings" (i przełącznik -w) daje uroczą diagnostykę.
Zobacz stronę perldiag(1) dla szczegółów o diagnostyce Perla. Pragma "use diagnostics" powoduje, że zazwyczaj zwięzłe ostrzeżenia i błędy Perla są wyświetalne właśnie w tej dłuższej formie.
Błędy kompilacji dają numer linii z błędem oraz wskazanie kolejnego tokenu lub typu tokenu, który miał być badany. (W wypadku skryptu przekazanego Perlowi przez przełącznik -e, każde -e jest traktowane jako pojedyncza linia).
Skrypty setuidowane mają dodatkowe warunki, mogące dawać błędy w rodzaju "Insecure dependency". Zobacz stronę perlsec(1).
Wspomnieliśmy już, że powinieneś koniecznie rozważyć użycie przełącznika -w?
BŁĘDY
Przełącznik -w nie jest obowiązujący.
Perl polega na tym, jak twoja maszyna definiuje różne operacje, takie jak rzutowanie typów, atof()(3) i sprintf(3). To ostatnie może nawet spowodować coredump kiedy otrzyma nonsensowne wartości wejściowe.
Jeśli twoje stdio wymaga seeka lub eof między odczytami i zapisami w danym strumieniu, to tak też jest w Perlu. (Nie dotyczy to sysread() i syswrite()).
Podczas gdy żaden z wbudowanych typów danych nie ma ostatecznego limitu rozmiaru (poza rozmiarem pamięci), istnieje wciąż kilka innych ograniczeń: dany identyfikator nie może być dłuższy niż 251 znaków. Numery linii wyświetlane w komunikatach diagnostycznych są wewnętrznie przechowywane jako liczby całkowite "short integers", dlatego maksymalna wartość jaką mogą przyjąć wynosi 65535 (wyższy numer spowoduje ponowne liczenia od zera).
Raporty o błędach możesz przesyłać pocztą do perlbug [AT] perl.com (upewnij się, że załączyłeś pełne dane o konfiguracji jako wyjście programu myconfig, załączanego w drzewie źródłowym Perla, lub z "perl -V")). Jeśli udało ci się skompilować perla, skrypt perlbug(1) z katalogu utils/ może zostać wykorzystany do pomocy w wysłaniu raportu błędu.
Perl właściwie jest skrótem od Pathologically Eclectic Rubbish Lister (Patologicznie Eklektyczny Roztrząsacz Śmieci), ale nie mów nikomu, że tak powiedziałem.
UWAGI
Mottem Perla jest "Istnieje więcej niż jeden sposób by to zrobić.". Odgadnięcie, ile pozostało jest ćwiczeniem dla czytelnika.
Trzy główne cnoty programisty to Lenistwo, Niecierpliwość i Pycha. Sprawdź w "książce z wielbłądem" dlaczego (L.Wall, T.Christiansen, R.L.Schwartz - Programmming Perl, O’Reilly & Associates, 1996; wyd.polskie 1999).
INFORMACJE O TŁUMACZENIU
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne. W razie zauważenia różnic między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:
man --locale=C 1 perl
Prosimy o pomoc w aktualizacji stron man - więcej informacji można znaleźć pod adresem http://sourceforge.net/projects/manpages-pl/.