www.digipedia.pl - manuale

PERL(1)

PERL(1) Podręcznik programisty Perla PERL(1)
{PTM/PB/0.1/03-04-1998/"Praktyczny język ekstrakcji i raportowania"} Translation 1999 Przemek Borys <pborys@dione.ids.pl> Translation update: Robert Luberda <robert@debian.org>, Mar 2003, perl 5.8.0
 
$RCSfile: perl.1,v $$Revision: 1.5 $$Date: 2003/03/10 11:10:17 $
 
$Log: perl.1,v $ Revision 1.5 2003/03/10 11:10:17 robert aktualizacja do 5.8.0 + hipertekstowość
 
Revision 1.4 2000/02/28 18:52:55 wojtek2 definuje=>definuje wg.=>wg usunięty przecinek przed ostatnim elementem wyliczeń: "lub" oraz "i"
 
Revision 1.3 1999/06/14 18:55:13 pborys modyfikacje stylistyczne
 
 
Rev. 1.2a w oparciu o rev.1.2; wyk.1999/06/12 hq - nieco zmian glownie poprawiajacych jasnosc stylu etc. W przypadkach watpliwosci lingwistycznych oparlem sie o oryg.ang. z 1999/03/28 (lecz bez wprowadzania zmian merytorycznych)
 
Revision 1.2 1999/05/15 22:00:30 kura ''' - poprawione błędy - dodana hipertekstowość - kilka poprawek
 
Revision 1.1 1999/05/01 10:30:56 pborys Rozumie sie samo przez sie.
 
Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
 
Standard preamble: ======================================================================== Set up some character translations and predefined strings. will give an unbreakable dash, will give pi, will give a left double quote, and will give a right double quote. | will give a real vertical bar. will give a nicer C++. Capital omega is used to do unbreakable dashes and therefore won't be available. and expand to `' in nroff, nothing in troff, for use with C<>.
 
If the F register is turned on, we'll generate index entries on stderr for titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index entries marked with X<> in POD. Of course, you'll have to process the output yourself in some meaningful fashion.
 
For nroff, turn off justification. Always turn off hyphenation; it makes way too many mistakes in technical documents.
 
Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). Fear. Run. Save yourself. No user-serviceable parts. ========================================================================
 

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. those distributed with Perl and third-party modules which are packaged or locally installed.

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) FIXME: roll-your-own magic variables (including multiple simultaneous DBM implementations)
 
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@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@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). FIXME (higher numbers usually being affected by wraparound).

Raporty o błędach możesz przesyłać pocztą do perlbug@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/.

2003-01-11 perl v5.8.0