Programowanie perłowe. Pakowanie danych w ciągi binarne


Co to jest Perl? Jest to skrót od języka programowania Practical Extraction i Report Language. Co oznaczają „wyciągi” i „raporty”? Dlaczego praktyczny język? Po co to jest? Jakie problemy można rozwiązać za jego pomocą? Te i wiele innych pytań naturalnie pojawia się u każdej osoby, która choć trochę jest zaznajomiona z informatyką, gdy po raz pierwszy spotyka się z nowym językiem programowania. Rozdział ten miał być odpowiedzią na postawione powyżej pytania, gdyż wiedząc, co potrafi język programowania, do czego jest przeznaczony (a wydaje się, że czasy języków uniwersalnych już minęły), programista ostatecznie decyduje, czy warto poświęcić czas na jego naukę. Chociaż tutaj pojawiają się również pytania dotyczące łatwości i szybkości opanowania nowego języka, dostępności kompilatorów, istnienia jego usługi wsparcia, kosztów itp. Mówimy również o tym porozmawiamy w tym rozdziale, który wprowadzi czytelnika w rozległy świat programowania w Perlu i stanie się punktem wyjścia, z którego, mamy nadzieję, szybko i bez oglądania się za siebie wejdzie do niego i pozostanie w nim na zawsze.

Język Perl narodził się w głębi systemu operacyjnego Unix jako reakcja jednego utalentowanego programisty na ograniczone możliwości standardowe środki Administracja systemu w tym środowisku operacyjnym. Autorzy doskonale zdają sobie sprawę, że większość czytelników zna Uniksa, być może jedynie z tytułów książek leżących na sklepowych półkach, gdyż tradycja studiowania informatyki w naszym kraju kojarzona jest bardziej z systemami operacyjnymi z rodziny Microsoft Windows [Microsoft Windows rodzina systemów operacyjnych odnosi się do systemów operacyjnych Windows 95/98/NT.] niż do systemu UNIX, który jest podstawą studiowania informatyki na zachodnich uniwersytetach. Dlatego czytelnikom wychowanym w tradycjach Windowsa zrobimy małą dygresję i pokrótce opiszemy procedurę administrowania UNIXem, która radykalnie różni się od podobnej pracy w systemie operacyjnym Windows.

Pod administracja odnosi się do dostosowywania systemu operacyjnego poprzez ustawienie wartości jego parametrów tak, aby odpowiadał potrzebom pojedynczego użytkownika lub grupy użytkowników. W systemach z rodziny Windows do takiej pracy służy Rejestr, będący bazą danych binarnych, a do zmiany parametrów służy specjalny program o nazwie regedit. W systemie UNIX konfiguracja odbywa się za pomocą specjalnych plików konfiguracyjnych, które są zwykłymi plikami tekstowymi, a wszelkich zmian dokonuje się poprzez wykonanie poleceń napisanych w specjalnym języku powłoki i wykonywanych z reguły z wiersza poleceń. (Kilka lat temu ok komputery osobiste Sala operacyjna była szeroko rozpowszechniona System MS-DOS Microsoft, który również używał wiersza poleceń do wprowadzania poleceń, więc wiersz poleceń będzie znajomy czytelnikowi, który pracował na tym systemie operacyjnym.) W systemie UNIX użytkownik może tworzyć własne polecenia na podstawie poleceń interpreter powłoki, zapisz je w zwykłych plikach tekstowych, a następnie wykonaj w taki sam sposób, jak zwykłe standardowe polecenia systemu operacyjnego za pomocą wiersza poleceń. Należy zauważyć, że powłoka systemu operacyjnego UNIX jest interpreterem, dlatego polecenia użytkownika mają inną nazwę - nazywane są scenariusze Lub skrypty(scenariusz). Administrator systemu operacyjnego UNIX musi napisać dużą liczbę skryptów przetwarzających inne skrypty - pliki tekstowe. Do tych celów oprócz języka poleceń powłoki zwykle stosuje się specjalne programy do przetwarzania plików tekstowych:

  • awk to program do dopasowywania wzorców i generator raportów;
  • sed to wsadowy edytor plików tekstowych.

Obydwa programy są filtrami, które sekwencyjnie odczytują linie z plików wejściowych i wykonują akcje określone przez polecenia programów, które dotyczą danej linii. Główne działania to wybieranie ciągów znaków według zadanych wzorców, zastępowanie ich według określonych zasad i generowanie nowych plików.

Teraz możemy przejść do przedmiotu naszych badań - języka Perl, zwłaszcza że, jak nam się wydaje, czytelnik powinien już zrozumieć, dlaczego nazywa się go językiem ekstrakcji i raportowania. A zaczniemy od historii jego powstania i rozwoju, która w istocie pozwala nam pełniej zrozumieć jego treść.

1.1. Historia języka Perl

Perl został opracowany przez Larry'ego Walla w 1986 roku, kiedy był administratorem systemu w projekcie UNIX związanym z utworzeniem wielopoziomowej bezpiecznej sieci, łączącej kilka komputerów rozmieszczonych w różnych długie dystanse. Praca została wykonana, ale wymagała stworzenia raportów w oparciu o dużą liczbę plików z licznymi powiązaniami pomiędzy nimi.

Larry początkowo zamierzał wykorzystać w tym celu filtr awk, jednak okazało się, że ten ostatni nie jest w stanie kontrolować otwierania i zamykania dużej liczby plików na podstawie zawartych w nich informacji o lokalizacji plików. Jego pierwszą myślą było napisanie specjalnego narzędzie systemowe, rozwiązując problem, ale pamiętając, że wcześniej napisał już kilka narzędzi do rozwiązywania problemów, których nie „podjęły się” standardowe narzędzia UNIX, zgodził się kardynalna decyzja- opracować język programowania, który łączyłby możliwości przetwarzania plików tekstowych (sed), generowania raportów (awk), rozwiązywania problemów systemowych (shell) oraz programowania niskopoziomowego dostępnego w języku C. Efektem tej decyzji był język Perl , dla którego tłumacz został napisany w S.

Według samego Larry'ego Walla, tworząc język Perl, kierowało nim lenistwo - nie w sensie dosłownym, ale w tym sensie, że aby rozwiązać stojący przed nim problem, musiałby napisać dużą liczbę programów w języku inne języki, zawarte w narzędzia UNIX, a to dość żmudne zadanie.

Nowy język programowania połączył możliwości administrowania systemem i przetwarzania plików – dwa główne zadania zwykle rozwiązywane podczas programowania w systemie UNIX. Co więcej, należy zauważyć, że język Perl pojawił się ze względów praktycznych, a nie z chęci stworzenia kolejnego „pięknego” narzędzia do pracy w systemie UNIX, dlatego stał się powszechny wśród administratorzy systemu, kiedy Larry Wall udostępnił je szerokiemu gronu użytkowników. Wraz z pojawieniem się języka Perl możliwe stało się rozwiązywanie problemów za pomocą jednego narzędzia i nie tracić czasu na naukę kilku języków środowiska programistycznego UNIX.

Pierwsza wersja języka nie zawierała wielu funkcji, które można znaleźć w najnowszej wersji Perla, z którą czytelnik zapozna się w tej książce, która jest oznaczona jako wersja 5.005_03 i uważana za stabilną. Pierwotnie język obejmował:

  • proste wyszukiwanie według wzorców ciągów (szablonów) w plikach;
  • deskryptory plików;
  • zmienne skalarne;
  • formaty.

Cała dokumentacja mieściła się na 15 stronach, ale Perl rozwiązywał problemy szybciej niż sed czy awk i szybko zaczął być używany nie tylko do rozwiązywania problemów z administracją systemem.

Później sam Larry Wall pożyczył od Henry'ego Spencera pakiet do pracy z wyrażeniami regularnymi i zmodyfikował go dla języka Perl. Inny funkcjonalność zostały opracowane nie tylko przez Larry'ego Walla, ale także jego przyjaciół i współpracowników, i włączone do języka. Publikowanie w Internecie doprowadziło do powstania społeczności ludzi o podobnych poglądach, którzy nie tylko wykorzystywali, ale także rozwijali język. Intensywnie rozwija się on do dziś poprzez rozwój pakietów wdrażających nowe zastosowania języka do rozwoju technologia informacyjna. W tabeli 1.1 pokazuje dynamikę pojawiania się nowych wersji języka Perl, począwszy od pierwszej:

Tabela 1.1. Wersje językowe Perla i daty wydania

Wersja Data wydania
perł 1 Styczeń 1988
perła 2 Czerwiec 1988
perła 3 Październik 1989
perła 4 Marzec 1991
perł 5 Październik 1994

Obecnie, jak wspomniano wcześniej, stabilna wersja Perla to 5.005_03, ale wersja 5.005_67 już istnieje. Można je wszystkie pobrać z głównej witryny internetowej Perla pod adresem http://www.perl.com/ .

1.2. Charakterystyka Perla

Perl jest językiem interpretowanym zoptymalizowanym do przeglądania zawartości plików tekstowych, wydobywania z nich informacji i generowania raportów na ich podstawie, a także jest po prostu dobrym językiem do wykonywania wielu zadań administracyjnych w systemie UNIX. Jako język skryptowy ogólnego przeznaczenia ma wiele zalet, które znajdują odzwierciedlenie w jego funkcjach i możliwościach.

Pierwszy w łańcuchu zalet języka Perl nazwiemy to interpretowalność. Oczywiście niektórzy programiści po przeczytaniu tego powiedzą: "No cóż, znaleźliśmy nasze zalety. Zobaczmy, jak szybko wykona się program w Perlu o długości, powiedzmy, tysiąca instrukcji?" Cóż, uwaga jest znacząca, jeśli uznamy Perla za język do tworzenia dużych systemy informacyjne, i absolutnie nie wytrzymuje krytyki, jeśli pamięta się, do czego jest przeznaczony - zadania administrowania i przetwarzania plików tekstowych - małe skrypty rozwiązujące nietradycyjne problemy, których zaprogramowanie może wymagać interakcji kilku specjalistycznych języków . Opracowanie takich rozwiązań przy użyciu skompilowanych języków programowania wymagałoby znacznie więcej czasu niż przy użyciu jednointerpretowanego: wszak cykl tworzenia programu w takim języku jest krótszy i prostszy niż w skompilowanym. Stopniowo budujemy program, dodając niezbędne instrukcje i natychmiast otrzymujemy wyniki po jego ukończeniu: interpreter Perla stopniowo kompiluje wszystkie instrukcje do wewnętrznego kodu bajtowego i program jest gotowy do wykonania zaraz po ostatniej kropce (a raczej średnik, zakończenie Ostatni operator). W przypadku małych programów jest to spora zaleta, ponieważ debugowanie zajmuje dużo czasu. Tak, interpretowany program będzie naturalnie działał wolniej niż program przedstawiony w formacie pliku binarnego i wykonywany bez wstępnej obróbki przez interpreter, ale jeśli zajdzie taka potrzeba, wówczas rozwiązanie Perla można wykorzystać jako prototyp dla np. języka skompilowanego C. Podsumowując wszystko Powiedziawszy to wszystko, możemy stwierdzić, że Perl pozwala łatwo i szybko uzyskać wymagane rozwiązanie problemu, łącząc elementy kompilowanych i interpretowanych języków programowania.

Drugi Zaletą używania Perla do odpowiednich zadań (mamy na myśli pracę w sieci) jest jego dostępność dla większości platform serwerowych:

  • prawie wszystkie warianty UNIX-a;
  • MS-DOS;
  • WindowsNT;
  • Windows 95/98;
  • OS/2;
  • Prochowiec.

Dla wszystkich tych platform opracowano interpretery języka Perl, które są swobodnie dystrybuowane wraz z dokumentacją dotyczącą ich instalacji i obsługi, co przyjemnie odróżnia go od innych programów. I tutaj wypada powiedzieć kilka słów o warunkach użytkowania i dystrybucji samego Perla oraz opracowanych na nim programów. (W rozdziale 16 znajdziesz informacje o tym, gdzie znaleźć i uzyskać interpreter Perla.)

Jednym ze sposobów rozpowszechniania wolnego oprogramowania, takiego jak interpreter języka Perl, jest korzystanie z Powszechnej Licencji Publicznej GNU. Zgodnie z warunkami tej licencji pliki źródłowe Produkt oprogramowania są dystrybuowane całkowicie bezpłatnie i mogą z nich korzystać wszyscy. Jednakże wszelkie wersje programu powstałe poprzez modyfikację tego kodu muszą być także zaimplementowane na warunkach Powszechnej Licencji Publicznej GNU, czyli pliki z kodem źródłowym nowego produktu powinny zostać udostępnione każdemu, kto chce je posiadać. Często wystarcza to do ochrony interesów autora oryginalnego oprogramowania, ale może prowadzić do powstania dużej liczby wersji pochodnych oryginalnego produktu, co prowadzi do „alienacji” autora oryginalnego produktu z procesu modyfikowania swojego pomysłu. Co więcej, ze względu na dużą liczbę różne wersje, użytkownikom trudno jest określić, która wersja pakietu jest aktualnie ostateczna, czy napisane przez nich skrypty, w przypadku Perla, będą poprawnie działać z posiadaną wersją itp.

Ze względu na stwierdzone wady licencji GNU, interpretatory Perla są wydawane na warunkach Licencji Artystycznej, która jest odmianą licencji GNU, a jej znaczenie jest takie, że każdy, kto wydaje pakiet wywodzący się z Perla, musi jasno zdawać sobie sprawę, że jego pakiet nie jest prawdziwym pakietem Perla. Dlatego wszystkie zmiany muszą być dokładnie udokumentowane i odnotowane, moduły wykonywalne, jeśli zostaną zmienione, muszą zostać zmienione, a oryginalne moduły muszą zostać rozesłane wraz ze zmodyfikowaną wersją. Efektem takich warunków jest to, że autor oryginalnego produktu jest zawsze identyfikowany jako jego właściciel. Podczas korzystania z Licencji Artystycznej wszystkie warunki Powszechnej Licencji Publicznej GNU pozostają w mocy, co oznacza, że ​​nadal mają zastosowanie.

Trzeci Zaletą języka Perl jest jego praktyczna orientacja, tzn. został stworzony ze względów praktycznych w celu rozwiązywania problemów administracji i tworzenia aplikacji dla systemu UNIX, co oznacza, że ​​posiada następujące ważne właściwości:

  • kompletność;
  • łatwość użycia;
  • efektywność.

Kompletność Perla odnosi się do jego zdolności do rozwiązywania wszystkich problemów pojawiających się w systemie UNIX w związku z jego administracją. I rzeczywiście tak jest! W końcu, jak wspomniano powyżej, język Perl wchłonął wszystkie najlepsze cechy standardowych narzędzi administracyjnych UNIX wymienionych w tabeli. 1.2.

Tabela 1.2. Standardowe narzędzia administracyjne UNIX

Język programowania Charakterystyka
ok Język służący do wydobywania informacji z plików tekstowych
C Język skompilowany ogólnego przeznaczenia do rozwiązywania problemów niski poziom
powłoka Główny język poleceń służący do uruchamiania programów i skryptów napisanych w innych językach programowania
seda Edytor strumieniowy do przetwarzania plików tekstowych

Narzędzia te są nadal używane, ponieważ każde z nich jest doskonałym narzędziem do wykonywania zadań, do których są przeznaczone, ale wszystko, co można osiągnąć łącząc te narzędzia, można zaimplementować w jednym programie Perla, wystarczy się uczyć jeden język. Ale możliwości Perla nie ograniczają się tylko do zadań administracyjnych. Pakiety i moduły wtyczek umożliwiają łatwe i szybkie rozwiązywanie innych zadań, do wykonania których w przeciwnym razie konieczne byłoby użycie języka programowania C. Począwszy od wersji 5.0, język Perl obsługuje technologię programowania obiektowego, a pakiety i moduły można formatować jako obiekty i używane bez znajomości zawartego w nich kodu (chociaż będziesz musiał przestudiować dużą ilość modele obiektów z własnymi właściwościami i metodami).

Perl to język, w którym potrafi programista Do swoje zadanie, a Perl oferuje kilka sposobów jego wdrożenia w celu wykonania tego samego zadania. Niektóre z nich są bardziej złożone, inne mniej. Programista może wybrać ten, który jest dla niego bardziej zrozumiały i łatwiejszy do wdrożenia, nie tracąc czasu na naukę bardziej skomplikowanych funkcji. Jest to łatwość użycia Perla, która pozwala na wykorzystanie go zarówno do wdrożenia usługi jednorazowe oraz do tworzenia złożonych, często używanych aplikacji.

Perl jest językiem prostym, co oznacza, że ​​proste programy nie muszą być pisane w formie głównych procedur, jak to jest powszechne w większości języki proceduralne programowania, lub w formie klasy, jak to jest w zwyczaju w obiektowych językach programowania, czyli nie musisz tracić czasu na dodatkowe formatowanie tekstu źródłowego programu, tylko po prostu zacznij pisać Operatory Perla, które zostaną natychmiast przetworzone przez tłumacza. Na tym polega skuteczność języka programowania Perl.

Czwarty Zaletą używania Perla jest jego dodatkowe funkcje, umożliwiając wykonywanie nie tylko tradycyjnych zadań administracyjnych w systemie UNIX i przetwarzanie plików tekstowych.

I tu przede wszystkim należy zwrócić uwagę na proste włączenie w programie Peri wywołań procedur biblioteki C, co pozwala na wykorzystanie wielka ilość kod napisany dla tego popularnego języka. Dystrybucja Perla zawiera narzędzia konwertujące nagłówki bibliotek C na odpowiadające im odpowiedniki w języku Perl. Konwersja odbywa się za pomocą interfejsu XS, co jest proste interfejs oprogramowania, który konwertuje środowisko wywoływania funkcji C na środowisko wywoływania procedur Perla. Kolejne wywołania funkcji C nie różnią się od wywoływania procedur w samym Perlu. Ponadto, Programy Perla wersje 5.0 można łatwo zintegrować z aplikacjami C i C++ poprzez interfejs zaimplementowany w zestawie funkcji perl_call_*.

Do pracy z bazami danych można samodzielnie napisać odpowiednią aplikację w języku C lub wykorzystać swobodnie dystrybuowane moduły umożliwiające dodatkowe rozszerzenie możliwości Perla, w tym współpracę z wieloma popularnymi systemami zarządzania bazami danych: Oracle, Ingres, Informix, Interbase, Postgre, Sybase 4 itp.

Zdolność Perla do współpracy z gniazdami TCP/IP uczyniła go popularnym we wdrażaniu systemów informatycznych umożliwiających interakcję serwery sieciowe dowolne typy wykorzystujące gniazda jako mechanizm wymiany informacji. To właśnie ta funkcja w połączeniu z wykorzystaniem Perla do tworzenia skryptów CGI doprowadziła do powszechnego przyjęcia tego języka na wielu innych platformach.

I na zakończenie wyliczania zalet Perla zwróćmy uwagę czytelnika piąty zaleta jego stosowania: ponieważ początkowo język ten był swobodnie rozpowszechniany, cała opracowana dokumentacja jest również dostępna całkowicie bezpłatnie, a ponieważ Perl, jako język skryptowy, jest bardzo popularny, w Internecie jest morze dokumentacji na temat jego wykorzystania do rozwiązywania różnych problemów.

(Niektóre adresy można znaleźć w rozdziale 16.)

1.3. Zastosowania Perla

Perl jest najczęściej używany do tworzenia narzędzi administracyjnych systemu, ale w Ostatnio zyskał ogromną popularność w dziedzinie tworzenia aplikacji internetowych: skrypty CGI,

Systemy do automatycznego przetwarzania poczty elektronicznej i obsługi serwisów WWW. W tej sekcji pokrótce opiszemy możliwości Perla w każdym z tych obszarów.

Obsługa systemu UNIX

Jak wspomniano wcześniej, to właśnie zadanie połączenia możliwości różnych narzędzi administracyjnych systemu UNIX w jednym języku programowania stało się impulsem do rozwoju i stworzenia języka Perl. Został opracowany w taki sposób, aby zoptymalizować rozwiązanie właśnie tych problemów, bez uciekania się do innych narzędzi. NA obecnie Perl jest głównym narzędziem administracyjnym systemu UNIX, które może wykonywać pracę kilku innych tradycyjnych narzędzi administracyjnych. To właśnie ta wszechstronność przyczyniła się do jego szerokiej dystrybucji wśród administratorów systemów i programistów UNIX, zwłaszcza że zwykle rozwiązuje problemy szybciej niż inne podobne narzędzia.

Skrypty CGI

Jedną z pierwszych technologii realizacji efektów dynamicznych, która do dziś jest szeroko stosowana w Internecie, jest technologia skryptów CGI, której istotą jest przetwarzanie informacji otrzymanych od użytkownika, które wprowadza on w pola formularza HTML strona przeglądana za pomocą przeglądarki Internet. Informacje z pól formularza przesyłane są do serwera za pomocą protokołu HTTP albo w nagłówku, albo w treści żądania i są przetwarzane przez skrypt, który po przeanalizowaniu otrzymanych danych wykonuje określone akcje i generuje odpowiedź w postaci nowa strona HTML, która jest odsyłana do klienta. Skrypt można napisać w zasadzie w dowolnym języku programowania, który ma dostęp do tzw. zmiennych środowiskowych, jednak najbardziej rozpowszechnione są skrypty w języku Perl ze względu na łatwość tworzenia i możliwości optymalizacji języka Perl podczas przetwarzania plików tekstowych. W Internecie można znaleźć dosłownie tysiące przykładów dynamicznego programowania CGI w języku Perl.

Jego duża popularność przy realizacji podobnych zadań na serwerach internetowych UNIX doprowadziła do tego, że twórcy serwerów internetowych działających na innych systemach operacyjnych zaczęli uwzględniać możliwość podłączania skryptów Perla do swoich systemów. Obecnie można z nich korzystać zarówno w internetowym serwerze informacyjnym firmy Microsoft dla systemów operacyjnych z rodziny Windows, jak i dalej Serwery Apache, NCSA i Netscape dla systemu operacyjnego UNIX.

Przetwarzanie poczty

Inną popularną aplikacją dla Perla jest automatyczne przetwarzanie poczty internetowej. Skrypty Perla można wykorzystać do filtrowania poczty na podstawie adresu lub treści, automatyczne tworzenie listy mailingowe i do rozwiązywania wielu innych problemów. Jeden z najbardziej popularne programy pracować z e-mailem to program Majordomo zaimplementowany w całości w języku Perl.

Możliwości Perla w tym zakresie są ogromne i ograniczone jedynie wyobraźnią programisty. Możesz na przykład napisać skrypt, który przetwarza pocztę przychodzącą i dodaje wiadomości do gotowej strony z wiadomościami, sortując je według odpowiednich tematów, co umożliwi szybkie skanowanie poczty bez marnowania czasu na czytanie każdej otrzymanej wiadomości. Po pewnym czasie wiadomości są usuwane ze strony.

Wsparcie strony internetowej

Witryna internetowa to nic innego jak uporządkowany magazyn stron HTML, które są zwykłymi plikami tekstowymi w określonym, specjalnym formacie, zrozumiałym dla programów przeglądających ich zawartość. Perl jest zoptymalizowany pod kątem przetwarzania duża ilość pliki tekstowe - stąd ich wykorzystanie do analizy i automatyczna zmiana zawartość witryny internetowej w naturalny sposób wynika z zadań, dla których została ona specjalnie utworzona. Można go na przykład wykorzystać do rozwiązania problemu sprawdzania poprawności odsyłaczy na stronach witryny internetowej, a także do sprawdzania poprawności łączy do innych witryn (choć tutaj trzeba będzie skorzystać z jego możliwości sieciowych do pracy z gniazdkami).

Możliwości zapisu i odczytu gniazda umożliwiają używanie skryptów Perla do komunikacji z innymi węzłami i pobierania informacji w oparciu o protokół HTTP. Należy zauważyć, że istnieją nawet serwery napisane w języku Perl. Jak wspomniano wcześniej, te właśnie funkcje Perla można wykorzystać do usuwania łączy ze stron HTML witryny internetowej do nieistniejących innych witryn.

Perl może także współpracować z protokołem FTP. Pozwala to zautomatyzować pobieranie plików z innych węzłów, a w połączeniu z możliwościami przetwarzania plików tekstowych pozwala na tworzenie złożonych systemów informatycznych.

W tym rozdziale staraliśmy się pokrótce scharakteryzować sam język Perl, nakreślić główne obszary jego zastosowań oraz zwrócić uwagę czytelnika na jego dalsze studiowanie i wdrażanie we własnej praktyce. Ostatecznie tylko programista sam decyduje, czy potrzebuje odpowiedniego języka, czy nie. Uważamy, że nasz drogi czytelnik dokonał już wyboru i mamy nadzieję, że nie opuści nas aż do samego końca. Ostatnia strona książki.

Pytania do samokontroli

1. Podaj pełną nazwę języka Perl.

2. Jaki był impuls do rozwoju i stworzenia Perla?

3. Jaki jest cel programu Peri?

4. Jakie są zalety i wady języków tłumaczonych?

5. Wymień główne zalety języka Perl.

6. Wymień zastosowania Perla.



Ukazał się w 1987 r.

Ten język programowania jest bogaty w możliwości pracy z tekstem, co wyznacza jego główny obszar zastosowań - w szczególności manipulację tekstem.

W tym artykule opisano, jak zainstalować środowisko wykonawcze Perla, wybrać narzędzia programistyczne i utworzyć swój pierwszy program. Na końcu tego przewodnika znajdziesz listę zasobów, które pomogą Ci szybko rozpocząć pracę. Podstawy Perla, a także głębiej uczyć się języka.

Perl jest jedynym językiem, w którym programy wyglądają tak samo przed i po szyfrowaniu RSA.

W momencie pisania tego materiału obecna wersja interpreter to 5.22.0. Perl 6 ma zostać wydany w 2015 roku, ale nie jest jeszcze dobrze udokumentowany.

Język programowania Perl zdecydowanie nie jest zalecany jako język do nauki programowania. Jeśli jesteś absolutnie początkujący, lepiej zacząć od czegoś mniej destrukcyjnego dla twojej delikatnej świadomości. A tak na serio, oto co Jon Ribbens miał do powiedzenia na temat tego języka:

PHP to małe zło stworzone przez niekompetentnych nowicjuszy, podczas gdy Perl to duże i podstępne zło stworzone przez wykwalifikowanych, ale pokręconych profesjonalistów.

Swoją drogą, nie powinieneś zaczynać od PHP. Przejdźmy teraz do rzeczy.

Środowisko wykonawcze

NA ten moment Perl jest oficjalnie wspierany na trzech wiodących platformach: Mac OS X, Unix i Windows. Na dwóch pierwszych z nich preinstalowane jest środowisko wykonawcze Perl, którego wersję można znaleźć za pomocą komendy perl -v (najnowszą wersję można pobrać), natomiast dla systemów operacyjnych z rodziny Windows interpreter Perla jest do pobrania na tej stronie. Jako najbardziej popularną zaleca się wybranie ActivePerl (dystrybucja z ActiveState).

Zintegrowane środowisko programistyczne (IDE)

Perl niestety nie jest zbyt popularny wśród twórców środowisk programistycznych, dlatego do wyboru masz tylko niewielką liczbę wyspecjalizowanych narzędzi.

Ojcze, Perl IDE

Wieloplatformowe, lekkie środowisko programistyczne zaprojektowane specjalnie dla Perla i przyjazne dla początkujących. Oprócz tradycyjnego podświetlania składni i autouzupełniania, posiada także wbudowane narzędzia do refaktoryzacji. Nawiasem mówiąc, sam Padre jest napisany w Perlu 5.

Redaktorzy tekstu

Oczywiście, jak w przypadku każdego języka programowania, masz do wyboru ogromną różnorodność wieloplatformowych edytorów tekstu, od wstępnie zainstalowanych notatników po wygodniejsze narzędzia do edycji kodu źródłowego z podświetlaniem składni, autouzupełnianiem i tym podobnymi. W szczególności zwróć uwagę na:

  • KomodoEdit - uproszczona wersja komercyjnego środowiska programistycznego Komodo IDE, opracowanego przez ActiveState (tego samego, który obsługuje dystrybucję ActivePerl), posiada funkcje autouzupełniania, podświetlania składni, wiele kursorów i wskazówki dotyczące dokumentacji;
  • Vim to edytor tekstu, którego interfejs może być nietypowy dla użytkownika systemu Windows; obsługuje podświetlanie składni;
  • Sublime Text to jedno z najlepszych narzędzi do edycji kodu źródłowego z podświetlaniem składni, autouzupełnianiem itp., którego funkcjonalność rozszerza wiele istniejących wtyczek;
  • Notepad++ to lekki edytor tekstu, który oferuje najbardziej poprawne podświetlanie składni po KomodoEdit; Funkcjonalność można rozszerzyć za pomocą wtyczek, ale jest ich sporo specjalnie dla Perla.

KodGround

Dodatkowo, jeśli chcesz po prostu spróbować programowania w języku Perl i nie chcesz instalować dodatkowego oprogramowania na swoim komputerze, możesz skorzystać z CodeGround, usługi zapewniającej dostęp do środowisk programistycznych online z podstawową funkcjonalnością dla większości języków programowania, w tym Perla.

Pierwsze „Witaj, świecie!” w Perlu

Tradycyjnie proponujemy rozpocząć naukę nowego języka od znanego programu:

Drukuj „Witaj świecie\n”;

Zapisz tę linię w pliku hello.pl i uruchom utworzony przed chwilą program za pomocą polecenia:

Perl hello.pl

Najpierw jednak upewnij się, że wśród plików wykonywalnych Perla znajdują się pliki wykonywalne Perla Zmienne środowiska(zmienne środowiskowe), a także to, że wywołujesz Perl z folderu z Plik źródłowy hello.pl. Jeśli się powiedzie, zobaczysz oczekiwany komunikat „Hello, world!”

Gratulacje, zacząłeś pisać w Perlu!

A potem w drodze...

Doskonały anglojęzyczny przewodnik po języku programowania Perl szybki start można go znaleźć na stronie tutorialspoint.com. Ponadto istnieje oficjalny zasób szkoleniowy -

Artykuł ten został napisany z myślą o osobach, które z powodu niemożliwych do pokonania okoliczności pilnie potrzebują przestudiowania Perły. Dla mnie ta okoliczność była taka, że ​​mój komputer stał się serwerem WEB, a ja odpowiednio zostałem mistrzem WEB. Zwyczajem jest uczenie się na błędach i doświadczeniach innych ludzi, dlatego zwracam uwagę na moje doświadczenia związane ze studiowaniem Pearl.

Od razu trzeba wyjaśnić, dla kogo to wszystko jest napisane. Jeśli Twój serwer działa na platformie UNIX, to ja powinienem przeczytać Twój artykuł. Mam zainstalowaną stację roboczą Windows NT 4.0 (RUS) z dodatkiem Service Pack 3. Kiedy przyszedł czas na zrobienie serwera WEB z mojego komputera, rzuciłem się do wbudowanych usług hosta WEB, ale szybko zdałem sobie sprawę, że mi się to nie podoba (Dlaczego?). I wtedy pewna życzliwa osoba doradziła zainstalowanie Xitami WEB Server firmy iMatix Corporation (), który istnieje do dziś.

Jeśli chodzi o samą Pearl, sprawa jest nieco bardziej skomplikowana. Po przeszukaniu różnych serwerów Perla (www.perl.org, www.perl.com) dowiedziałem się, że istnieje tak wiele wersji Perla, że ​​dość trudno jest wybrać coś konkretnego. Jednocześnie nie ma nigdzie jasnych zaleceń dotyczących wyboru tej czy innej wersji. Po wypróbowaniu prawie wszystkich wersji dla systemu Windows wybrałem Active Perl().

Dla osoby rozpieszczanej przez wszelkiego rodzaju Windowsy i Delphi pisanie programów w Perlu jest dość niezwykłe, dlatego zdecydowanie polecam od razu zainstalować Perl Builder. Można go pobrać na stronie www.solutionsoft.com. Była tam trzydziestodniowa wersja Demo.

Cóż, myślę, że czas przejść od razu do rzeczy. Ogólnie skrypt Pearl, jak każdy inny program, działa w następujący sposób:

  1. odbiera dane
  2. przetwarza dane
  3. daje rezultaty

Dane do skryptu możesz przesłać dwiema metodami – GET i POST. Różnica między nimi polega na tym, że podczas korzystania z GET dane stale wiszą w pasku adresu przeglądarki, na przykład:

Httр://treagraf.tasur.edu.ru/cgi-bin/price.pl?Category=POWER&Description=varta

W tym przypadku skrypt B_price.pl pobiera dane w zmiennej środowiskowej QUERY-STRING.

$data=$ENV("QUERY_STRING");

Podczas korzystania z metody Wysłać dane są przekazywane na standardowe wejście skryptu. Długość bloku danych jest zapisywana w zmiennej CONTENT_LENGTH:

Odczyt(STDIN,$dane,$ENV("CONTENT_LENGTH"));

Teraz te dane muszą zostać przetłumaczone na strawną formę, ponieważ są zakodowane.

Standardowa konwencja polega na zastępowaniu spacji znakami plus, a następnie kodowaniu pozostałych nieprawidłowe znaki używając kodów ASCII w postaci szesnastkowej, poprzedzonej znakiem (%). Przykład:

Http://treagraf.tasur.edu.ru/cgi-bin/B_price.pl\ ?Category=%C2%E8%E4%E5%EE&Description=%E0%E1%E2%E3

To znaczy:

Http://treagraf.tasur.edu.ru/cgi-bin/B_price.pl?\ Kategoria=Wideo&Opis=abvg

Lepiej jest samodzielnie zdekodować ciąg zapytania po raz pierwszy. Na pytanie „jak?” Jest wiele odpowiedzi, których nie ma sensu przepisywać. Podam tylko krótki przykład:

Zastąp znaki (+) spacjami

$zapytanie = ~ s/\+/ /g;

Następnie zastępujemy wszystkie kombinacje znaku (%), po którym następują cyfry szesnastkowe, odpowiednimi Znak ASCII

$zapytanie =~ s/%((2))/pack("C", szesnastkowo($1))/eg;

Używam tego, co oferuje Perl Builder:

#! E:\perl5\bin\perl # wywołaj procedurę pobierania danych $Category = $field("Category"); # pobierz dane z pola Kategoria $Opis = $field("Opis"); # pobierz dane z pola Opis $Page = $field("Strona"); # pobierz dane z pola Strona

Na końcu skryptu umieszczamy podprogram umożliwiający „przejrzysty” odczyt danych.

Sub GetFormInput ( (*fval) = @_ if @_ ; lokalny ($buf); if ($ENV("REQUEST_METHOD") eq "POST") ( read(STDIN,$buf,$ENV("CONTENT_LENGTH")) ; ) else ( $buf=$ENV("QUERY_STRING"); ) if ($buf eq "") (zwróć 0;) else ( @fval=split(/&/,$buf); foreach $i (0 . $#fval)( ($nazwa,$val)=split (/=/,$fval[$i],2); $val=~tr/+/ /; $val=~ s/%(.. )/pack("c",hex($1))/ge; $name=~tr/+/ /; $name=~ s/%(..)/pack("c",hex($1))/ ge; if (!definiowane($pole($nazwa))) ( $pole($nazwa)=$val; ) else ( $pole($nazwa) .= ",$val"; #jeśli chcesz dokonać wielokrotnego wyboru aby dostać się do tablicy zmień na: #$field($name) .= "\0$val"; ) ) ) return 1; )

Drugi etap skryptu – przetwarzanie danych – zależy wyłącznie od Ciebie. Sprawdź otrzymane dane pod kątem poprawności, zapisz je do pliku, rób co chcesz.

Na koniec należy przekazać pewne wyniki przeglądarce klienta, aby przeglądarka wyświetlała je poprawnie. Oznacza to, że musisz wyświetlić wyniki w formacie HTML. Odbywa się to po prostu: (można to również zrobić na różne sposoby)

Drukuj „Typ zawartości: tekst/html”, „/n/n”; #wymagany wydruk linii "

W polu Kategoria wpisałeś: ", $Kategoria, "

To wszystko dotyczy skryptów, które odbierają dane z formularza na stronie HTML. W tym przypadku strona z formularzem jest osobna, skrypt jest osobny. Możesz uczynić go piękniejszym i wygodniejszym: połącz stronę i skrypt w jedną całość. W tym celu skrypt jest napisany według następującego schematu:

  1. Po pierwszym uruchomieniu skrypt rysuje strona HTML z formularzem i linkiem w tagu ACTION do samego siebie. O pierwszym uruchomieniu decyduje brak danych wejściowych.
  2. Jeśli istnieją dane wejściowe, to je otrzymujemy, przetwarzamy i generujemy wyniki.

#! E:\perl5\bin\perl if (($ENV("QUERY_STRING") eq "") lub ($ENV(CONTENT_LENGTH)=0)) ( # wygeneruj stronę z formularzem ) else (# odbierz dane, przetwórz i wypisz wynik)

Księga gości

Ogólny algorytm księgi gości wygląda następująco:

1. Jeżeli odwiedzający chce dokonać wpisu w księdze to
1.1 Pobieranie danych
1.2 Zapisz je do pliku lub bazy danych
1.3 Dziękujemy HTML i sugerujemy przeczytanie innych wpisów
2. Jeśli odwiedzający chce zapoznać się z wpisami w księdze, to
2.1 Odczyt rekordów z pliku lub bazy danych
2.2 Pięknie je wyświetlamy w formacie HTML

Dla ułatwienia sformatowałem punkty 1 i 2 za pomocą osobnych skryptów, odpowiednio add_guestbook.pl i read_guestbook.pl. Wiadomości z księgi gości są przechowywane w pliku tekstowym linia po linii, tj. dla każdego rekordu jest linia. Ma to na celu ułatwienie odczytania tego pliku. Przykład jednego wpisu:

Sobota 5 grudnia 13:31:20 1998&Natasha&student&Dobry&Dobry na początek. Życzę sukcesów na tym polu, Aleksandrze!&no@yet&194.226.60.34

Poniżej znajduje się opis pól w księdze gości, o której mowa.

  • Imię - imię, nazwisko, patronimika, pseudonim - według uznania odwiedzającego
  • Praca - zawód, zawód
  • RadioButton - trzy przyciski: Podobało mi się (Dobrze), Nie podobało mi się (Złe), Nie obchodzi mnie to (Inne)
  • Tekst - pole tekstowe komentarzy i notatek
  • E-mail - adres zwrotny

Za chwilę wyruszysz w podróż do świata programowania w języku Perl. Twoja podróż będzie tym przyjemniejsza, dzięki obecności dużej liczby przykładów, które napotkasz po drodze. Początek naszej podróży obejmuje podstawowe pojęcia języka. Stopniowo nauczysz się wystarczająco dużo o Perlu, aby tworzyć małe programy. Na końcu naszej podróży będziesz już posiadał niezbędną wiedzę, aby móc tworzyć pełnoprawne aplikacje.

Czy znasz jakieś inne języki programowania? Jeśli tak, to nauka Perla będzie dla Ciebie przyjemnością. Jeśli nie, nie spiesz się, wypróbuj wszystkie proponowane ćwiczenia i przykłady i nie bój się eksperymentować!

Pochodzenie

Perl powstał dzięki wysiłkom jednego człowieka i, jak sam przyznaje, wynikowi jego lenistwa. To wyjątkowy język, którego istoty nie da się przekazać za pomocą prostego opisu szczegółów technicznych. Perl to stan umysłu.

Jedną z osobliwości tego języka jest jego nazwa. Ma kilka definicji. Perl pierwotnie oznaczał język raportów praktycznej ekstrakcji. Jednak programiści bardzo często nazywają go patologicznie eklektycznym śmieciarzem lub nawet praktycznie wszystkim naprawdę sympatycznym.

Poświęćmy kilka minut, aby zrozumieć, czym jest Perl i jakie zadania zostały mu przypisane w momencie jego tworzenia. Już w 1986 roku Larry Wall pracował nad problemem generowania raportów z dużej liczby plików tekstowych, które nakładały się na siebie. Będąc programistą Uniksa, a ponieważ zadanie polegało na manipulowaniu zawartością plików tekstowych, najpierw spróbował użyć Awk. Szybko jednak okazało się, że Awk nie nadaje się do tego zadania i nie mając innych kandydatów do rozwiązania problemu, pozostało tylko wymyślić własne narzędzie, które można by wykorzystać w przyszłości.

Zamiast tracić czas, Larry po prostu wymyślił nowy język programowania i napisał dla niego interpreter. Wydaje się to paradoksem, ale nie do końca jest to prawdą – to, co robisz, zawsze wymaga dużo pracy, ale jeśli zrobisz to dobrze, to ta praca na pewno się opłaci.

Larry wkrótce zaoferował swoje dzieło społeczności czytelników grup dyskusyjnych Usenet. Użytkownicy mający dostęp do Usenetu przekazywali twórcy Perla skuteczne informacje zwrotne, pytając, jak zrobić to, tamto i tamto. Larry nawet nie miał zamiaru stwarzać wielu z tych problemów swojemu nowemu językowi programowania.

Nowy język programowania kładł nacisk na kontrolę systemu i przetwarzanie tekstu. Po kilku wersjach mógł już używać wyrażeń regularnych, sygnałów i gniazd sieciowych. Stał się znany jako Perl i szybko stał się popularny wśród programistów Uniksa, a wkrótce także wśród nas.

Larry nie zajmuje się już samodzielnie Perlem, ale zachowuje swój wyłączny tytuł głównego programisty.

Programy w Perlu są bardzo podobne do programów w C, być może dlatego, że Perl został napisany w C i być może dlatego, że Larry'emu przydały się pewne konstrukcje C. Ale Perl jest mniej pedantyczny i znacznie bardziej zwięzły niż C.

Perl został zaprojektowany, aby pomóc programiście w wykonywaniu rutynowych zadań, które są zbyt trudne lub słabo przenośne dla powłoki, a także zbyt zawiłe lub trudne do zakodowania w języku C (lub jakimkolwiek innym języku).

Kiedy już opanujesz Perla, może się okazać, że będziesz spędzać zauważalnie mniej czasu na poprawnym cytowaniu różnych parametrów powłoki (lub prawidłowym wykonywaniu deklaracji C), a więcej na czytaniu wiadomości z Usenetu i jeździe na nartach, ponieważ Perl jest wspaniałym narzędziem, które pomoże Ci stać się programista. „Niektórzy starożytni” mówili: „Nie powinieneś uczyć się języka programowania, który nie zmienia radykalnie twojego rozumienia programowania”. Bądź pewien, że gdy nauczysz się Perla, spojrzysz na programowanie z zupełnie innej perspektywy.

Potężne konstrukcje tego języka pozwalają na tworzenie bardzo skutecznych rozwiązań i uniwersalnych narzędzi przy minimalnym wysiłku. Narzędzia te mogą być nadal używane, ponieważ programy napisane w języku Perl są wysoce przenośne i gotowe do użycia. Dzięki temu będziesz mieć jeszcze więcej czasu na czytanie aktualności Usenetu i chodzenie do barów ze znajomymi.

Perl bardzo dobrze radzi sobie z zadaniami niskiego poziomu, zwłaszcza od czasu wydania piątej wersji tego języka.

Koszt i licencja

Perl jest darmowy. Mówiąc ściślej, Perl jest rozpowszechniany na licencji publicznej GNU. Kompletny kod źródłowy i dokumentację można kopiować, kompilować i drukować całkowicie bezpłatnie. Wszystkie programy, które napiszesz w Perlu, są Twoje i możesz z nimi zrobić, co chcesz.

Oprócz komputerów z systemem UNIX Perl istnieje również na inne platformy - Windows, DOS, Atari, Amiga itp.

Czy masz zainstalowany Perl?

Bardzo łatwo jest sprawdzić, czy masz Perla. Po prostu wydaj następujące polecenie w wierszu poleceń:

perl -v To jest Perl, wersja 5.001
Nieoficjalny poziom łatki 1m.
Prawa autorskie 1987-1994, Larry Wall Port Win32 Prawa autorskie 1995 Microsoft Corporation. Wszelkie prawa zastrzeżone.
Opracowano przez hip communication iNC., //info.hip.com/info/
Perl dla Win32, kompilacja 107
Zbudowany 16 kwietnia 1996 o 14:47:22
Perl można kopiować wyłącznie na warunkach Licencji Artystycznej lub Powszechnej Licencji Publicznej GNU, które można znaleźć w zestawie źródłowym Perla 5.0.

Jeśli pojawi się komunikat o błędzie lub masz wersję 4 Perla, skontaktuj się z administratorem systemu lub samodzielnie zainstaluj Perl.

Twój pierwszy program w Perlu

Twój pierwszy program w Perlu ilustruje drukowanie linii tekstu na ekranie. Na początek musisz utworzyć prosty plik tekstowy, który będzie zawierał Twój program w języku Perl. Następnie uruchomisz plik programu.

Tworzenie programu

Program w języku Perl to zwykły plik tekstowy zawierający kilka konstrukcji językowych. Te ostatnie zwykle przypominają mieszankę języka C, skryptu powłoki Unix i po angielsku. Ogólnie rzecz biorąc, dokładnie tak jest w rzeczywistości.

Kod Perla może być bardzo różnorodny. Oto kilka podstawowych zasad:

Spacje wiodące w wierszu są ignorowane. Możesz umieścić instrukcję językową gdziekolwiek chcesz: na początku linii, z wcięciem (zalecane) lub nawet wyrównaną do prawej (ale w tym przypadku będzie niezwykle trudno przeczytać tekst programu i cokolwiek zrozumieć);

Konstrukcja językowa musi kończyć się średnikiem, chyba że jest ostatnią konstrukcją w bloku lub pliku albo jest instrukcją eval;

Spacje, tabulatory, puste linie nie mają znaczenia – jedna spacja równa się stu spacji. Oznacza to, że dla przejrzystości można podzielić konstrukcję językową na wiele linii. Ciąg znaków to zazwyczaj ciąg znaków otoczony cudzysłowami. Rozdział 2, „Literały liczbowe i łańcuchowe”, zawiera bardziej szczegółowy opis ciągów;

Wszystko, co następuje po znaku „#”, jest ignorowane, chyba że znajduje się w wierszu. Użyj tej funkcji, aby dodać przydatne komentarze do swojego kodu. Należy zauważyć, że w Perlu nie ma komentarzy wielowierszowych (na przykład jak w języku C).

Podobnie jak skrypt powłoki, program Perla składa się ze wszystkich instrukcji Perla znajdujących się w pliku, traktowanych łącznie jako jeden duży program do wykonania. Nie ma koncepcji funkcji głównej, jak w C, w Perlu.

Język programowania Perl został stworzony przez Larry'ego Walla w 1987 roku podczas jego pracy programista systemowy w amerykańskiej firmie Unisys. Cele, jakie przyświecały Larry'emu podczas opracowywania nowego języka programowania, znajdują odzwierciedlenie w jego nazwie - PERL, która później stała się skrótem od Practical Extraction and Report Language, czyli „ praktyczny język wydobywanie „danych” i „tworzenie” raportów.”

Jedna z legend o pochodzeniu Perla głosi, że w tamtym czasie istniał już język o tej nazwie, dlatego Larry skrócił nazwę o jedną literę, nie zmieniając wymowy. Jak na ironię, dziś nikt nie pamięta tego języka poza historykami, ale Perl jest znany na całym świecie.

Chociaż według innej wersji Larry nazwał stworzony przez siebie język imieniem swojej narzeczonej.


Larry'ego Walla

Na rozwój Perla miały wpływ języki Ada, Basic, Fortran, Lisp, Pascal i oczywiście język C. Perl wchłonął różne nurty informatyki: programowanie proceduralne, modułowe, funkcjonalne i obiektowe, makrotekst przetwarzania, a ponadto - kultura systemu operacyjnego Unix, z bogatym zestawem poleceń i narzędzi, elegancką, przemyślaną architekturą i ujednoliconym podejściem do prezentacji danych.

Dziedzictwo Uniksa

Środowisko Unix, w którym został opracowany, miało decydujący wpływ na rozwój języka Perl. Od samego początku ten system operacyjny był tworzony przez małą grupę programistów dla siebie. Dlatego zawarte w nim zasady skupiają się na wygodzie codziennego użytkowania przez człowieka: wszystko zostało zrobione możliwie funkcjonalnie, krótko i jednolicie. Na przykład większość Ustawienia systemowe przechowywane w postaci zwykłego tekstu, dzięki czemu osoba posiadająca prostą wiedzę może je odczytać i poprawić Edytor tekstu.

Dla osób zaznajomionych z salą operacyjną systemu uniksowego, ten materiał nie będzie nowy. Jednak dla wielu programistów systemów MS-DOS i Windows ważne jest zapoznanie się z zasadami programowania w oparciu o narzędzia programowe, które powstały i ewoluowały wraz z systemem operacyjnym Unix. Znani programiści Brian W. Kernighan i Philip Plauger napisali o nich wspaniałą książkę. Oto główne punkty tego podejścia.

Aby rozwiązać określony problem, opracowywane są małe programy, z których każdy wykonuje jedną funkcję rozwiązywanego problemu.

Problem rozwiązuje się poprzez interakcję małych programów poprzez sekwencyjne przetwarzanie danych z każdego z nich.

Tworząc te małe programy, należy skupić się na ich maksymalnym niezależnym wykorzystaniu, aby można było je wykorzystać do rozwiązania innych problemów. Tym samym stopniowo powstają narzędzia (IS) do dalszego uniwersalnego zastosowania.

Większość narzędzi zaprojektowano jako programy filtrujące, które odczytują strumień danych ze standardowego wejścia i zapisują przetworzone dane na standardowe wyjście.

Integracja narzędzi z aplikacjami odbywa się za pomocą języka poleceń systemu operacyjnego: przekierowanie wejścia-wyjścia, tworzenie potoków programowych (kierowanie strumienia wyjściowego jednego programu na wejście innego).

Głównym formatem przechowywanych danych narzędzi są pliki tekstowe, do których równie dobrze się nadają przetwarzanie oprogramowania i czytanie ich przez osobę.

Dla wydajne przetwarzanie Wyrażenia regularne są używane w przypadku informacji tekstowych o słabej strukturze.

Korzystne czynniki

Język szybko rozprzestrzenił się wśród użytkowników Usenetu. Pomimo tego, że system operacyjny Unix (OS), dla którego stworzono Perla, posiadał już liczne i różnorodne narzędzia do przetwarzania informacji tekstowych (awk, csh, grep, sed i inne), nowy język uwielbiany przez ogromną liczbę administratorów systemów i programistów. Był łatwy do nauczenia i użycia: składnia była podobna do C, programy w Perlu nie wymagały wcześniejszej kompilacji, a kod źródłowy był łatwy do modyfikacji. A co najważniejsze, był to naprawdę bardzo praktyczny język: z jego pomocą większość problemów można było łatwo rozwiązać. Codzienne zadania- od najprostszych do bardzo skomplikowanych.

Aktywnie korzystając z języka Perl, programiści z różnych krajów przesłali Larry'emu Wallowi propozycje dodania do niego nowych funkcji lub ulepszenia istniejących. Stopniowo Perl ewoluował od uniksowego narzędzia do edycji tekstu w potężny system programowania ogólnego przeznaczenia. W połowie lat 90., wraz z rozwojem Internetu, Perl stał się ulubionym narzędziem webmasterów do tworzenia dynamicznych stron internetowych i programowania Internetu.

Dzięki potężnym, wbudowanym narzędziom do przetwarzania tekstu, Dane Perla szeroko stosowany do przetwarzania informacji w formatach HTML i XML.

Perl stał się niezbędnym składnikiem każdego pakietu systemu operacyjnego Rodzina Unixów(na przykład FreeBSD, Linux lub Solaris). Ponadto do tej pory Perl został wdrożony dla prawie wszystkich współczesnych platform sprzętowych (superkomputery, RISC, Macintosh, PC, komputery przenośne) i systemów operacyjnych (AIX, Linux, MacOS, MS-DOS, NetWare, OS/2, QNX, Solaris , Windows, VMS i tak dalej).

Umożliwia to łatwe przenoszenie popularnych programów w języku Perl z jednego środowiska operacyjnego do drugiego.

Niewątpliwie jego powszechnemu zastosowaniu ułatwił fakt, że jest on rozpowszechniany bezpłatnie na warunkach jednej z licencji: albo GNU GeneralPublic Licence (GPL), albo Licencji Artystycznej - wybór należy do Ciebie. Ale najważniejsze, że posiada wszystkie narzędzia, które doskonale pomogą profesjonalistom i niedoświadczonym programistom, gdy muszą szybko rozwiązać różne problemy systemowe i aplikacyjne - od najprostszych do najbardziej skomplikowanych. W rezultacie Perl stał się jednym z najbardziej udanych projektów tego ruchu. otwarte źródło(open source) - wraz z Apache, Linux, PHP i Python.

Niezwykły język programowania

Zasady projektowania w Perlu bardzo różnią się od tych stosowanych wcześniej w programowaniu. Z nowatorskim charakterem języka kojarzono cechy szczególne osobowość autora, Larry'ego Walla, i jego różnorodne zainteresowania.

Podczas studiów na uniwersytecie Larry Wall otrzymał wykształcenie językowe. Ponadto zajmował się programowaniem i pracował w uniwersyteckim centrum komputerowym.

Być może główną zasługą Larry'ego jako autora Perla jest to, że udało mu się stworzyć język uwzględniający właściwości i zasady języka naturalnego: sytuacyjną polisemię konstrukcji, rozsądną redundancję (i dzięki tej różnorodności stylistycznej), maksymalną adaptację do różnych poziomów znajomości native speakerów, elastyczności i wyrazistości środków syntaktycznych. Wszystko to nadaje szczególny twórczy charakter samemu procesowi „pisania” w tym języku.

Osoby piszące o języku Perl nieświadomie używają terminów „idiom”, „metafora”, „synonim”, „kontekst” itp., zwykle stosowanych w językach naturalnych. A sam Larry Wall opisując język Perl, szeroko posługuje się terminami językowymi: rzeczownik, czasownik, zdanie, liczba pojedyncza i mnoga, zaimek.

Wybitny językoznawca B.L. Whorf zauważył: „Język kształtuje nasz sposób myślenia i określa, o czym możemy myśleć”. Tę samą myśl potwierdza J. Bentley w książce „Perły kreatywności programistów”, opisując przypadek, gdy to właśnie cechy języka programowania APL skłoniły programistę do oryginalne rozwiązanie problemy z tablicami. W tym sensie Perl, jako język realizacji planów programisty, nie krępuje wyobraźni programisty, daje mu maksymalną swobodę wypowiedzi, a czasem nawet podpowiada rozwiązania niestandardowe.

Jako wady języka wymienia się:

Zasady językowe Perla

Języki ludzkie mają tendencję do używania ograniczonego zestawu konstrukcji do wyrażania różnych znaczeń i ponownego wykorzystywania ich w różnych kontekstach. Zgodnie z tą zasadą w Perlu te same konstrukcje językowe mają różne znaczenia, a o ich jednoznacznym rozumieniu decyduje kontekst użycia.

Zasada kontekstu jest ściśle związana z poprzednią. Kontekst jest używany w językach naturalnych w celu prawidłowej interpretacji znaczenia wyrażenia. Kierując się tą zasadą, na przykład w Perlu wiele funkcji zwraca pojedynczą wartość lub listę, w zależności od kontekstu wywołania: czy składnia wyrażenia wymaga jednej czy wielu wartości.

Zasada podkreślania semantycznego w językach naturalnych ma na celu zwrócenie uwagi na ważną część wypowiedzi. W tym przypadku wyróżniona część jest zwykle umieszczana na początku zdania. W Perlu programista może wykorzystać tę zasadę do podkreślenia znaczenia, wybierając prostą klauzulę modyfikującą lub konstrukcję warunkową, taką jak:

$my->będziemy(zrobić($to)), jeśli $ty->chcesz($to); # Lub
jeśli $ty->chcesz($tego) ( $my->będziemy(zrobić($to)) )

Zasada wolności w językach naturalnych sugeruje, że zawsze istnieje kilka możliwości wyrażenia tej samej myśli. Podobnie jak w językach naturalnych, w Perlu ten sam rezultat można osiągnąć na kilka sposobów, używając różnych środków wyrazu języka. Jest to tak zwana zasada TIMTOWTDI – skrót brzmi „Tim Toady” i oznacza „Istnieje więcej niż jeden sposób, aby to zrobić”: „istnieje więcej niż jeden sposób, aby coś zrobić”. Zgodnie z nią każdy programista wybiera wersję struktury językowej, która jest dla niego bardziej odpowiednia w konkretnej sytuacji, bardziej zgodna z jego stylem lub poziomem znajomości języka.

Podejście to jest całkowicie odwrotne do ściśle formalnego spojrzenia na języki programowania, gdzie głównymi celami rozwoju są jednoznaczność i minimalizacja konstrukcji językowych. Jednak z punktu widzenia psychologii i myślenia lingwistycznego „podejście językowe” jest pod wieloma względami bardziej produktywne, choć może się to wydawać paradoksalne! Przecież pobudza kreatywność czerpiąc z ludzkich doświadczeń w posługiwaniu się językiem naturalnym – a pisanie programów w Perlu staje się zabawą i ciekawostką. Prawdopodobnie dlatego programiści Perla tak bardzo kochają słowo „zabawa”.

Pierwsze wersje i „Księga wielbłądów”

Larry Wall zaczął rozwijać Perl w 1987 roku, pracując jako programista w Unisys. Wersja 1.0 została wypuszczona i ogłoszona 18 grudnia 1987 jako „zamiennik” dla awk i sed.

Perl 2 został wydany w 1988 roku. Główną innowacją był przeprojektowany mechanizm wyrażenia regularne.

Perl 3, wydany w 1989 roku, zyskał możliwość przetwarzania binarnych strumieni danych.

Początkowo jedyną dokumentacją Perla była pojedyncza (niezwykle długa) strona podręcznika. W 1991 roku ukazała się książka Programming Perl (znana wielu programistom jako Camel Book ze względu na obrazek na okładce), która stała się de facto standardem językowym.

Jednocześnie „zaktualizowano” wersję językową do wersji 4 – nie tyle po to, aby wskazać istotne zmiany, ile po to, aby wskazać, że ta wersja języka została udokumentowana w książce. Perl 4 doczekał się serii wydań, kończąc na Perlu 4.036 w 1993 roku.

Perła 5

Rozwój Perla 5 rozpoczął się w 1994 roku. W tym samym czasie utworzono listę mailingową perl5-porters w celu koordynowania prac nad przeniesieniem Perla 5 na różne platformy. Pozostaje głównym forum rozwoju, konserwacji i przenoszenia Perla 5.

Perl 5.000 został wydany 17 października 1994 r. Zawierał całkowicie przepisany interpreter, a także wiele nowych funkcji językowych, takich jak obiekty, referencje, zmienne lokalne (my $var_name) i moduły. Moduły były szczególnie ważną częścią, ponieważ zapewniały mechanizm rozszerzania języka bez modyfikacji interpretera. Pozwoliło to na stabilizację interpretera, ale jednocześnie dało zwykłym programistom Perla możliwość dodania nowych funkcji do języka. Perl 5 jest nadal w fazie aktywnego rozwoju do dziś.

Perl 5.001 został wydany 13 marca 1995 roku. Perl 5.002 został wydany 29 lutego 1996 roku z obsługą nowych prototypów. Umożliwiło to autorom modułów tworzenie funkcji, które zachowywały się podobnie jak funkcje wbudowane Perla. Wersja Perla 5.003 została wydana 25 czerwca 1996 roku i naprawiono problemy związane z bezpieczeństwem.

Jedno z najważniejszych wydarzeń w historii Perla 5 miało miejsce poza samym językiem i było konsekwencją obsługi modułów. 26 października 1995 roku rozpoczęła pracę CPAN (Comprehensive Perl Archive Network), która stała się repozytorium modułów Perla, a także kodu źródłowego samego języka. W tej chwili sieć liczy ponad 25 000 modułów stworzonych przez ponad 8 000 programistów.

Perl 5.004 został wydany 15 maja 1997 roku i zawierał między innymi pakiet UNIVERSAL, który dał językowi podstawowy obiekt, z którego automatycznie wyprowadzono wszystkie klasy. Dodano także możliwość zapytania o wersję modułu. Oprócz tego Perl zaczął obsługiwać system Microsoft Windows, a także wiele innych systemów operacyjnych.

Perl 5.005 został wydany 22 czerwca 1998 r. To wydanie zawierało kilka ulepszeń procesora wyrażeń regularnych, nowe zaczepy w backendie wykorzystujące moduły B::*, operator qr//quote dla wyrażeń regularnych, duży wybór inne nowe moduły, a także obsługę szeregu systemów operacyjnych, w szczególności BeOS.

Lata 2000

Perl 5.6 został wydany 22 marca 2000 roku. Główne zmiany obejmowały obsługę systemów 64-bitowych, reprezentację ciągów Unicode, obsługę dużych plików (plików większych niż 2 GB) i słowo kluczowe „nasz”. Podczas opracowywania Perla 5.6 podjęto decyzję o zmianie schematu nazewnictwa wersji, aby był bardziej spójny z innymi projektami open source. Po wersji 5.005_63 pojawiła się wersja 5.5.640; zgodnie z planem wersjom w fazie rozwoju miały być przypisane numery nieparzyste, a stabilnym – parzyste.

W 2000 roku Larry Wall wezwał społeczność do aktywnego omawiania propozycji kolejnej wersji Perla. Wynikiem tej dyskusji było 361 dokumentów RFC (prośba o komentarz), które wykorzystano przy opracowywaniu Perla 6.

W 2001 roku rozpoczęto prace nad dokumentem końcowym podsumowującym propozycje nowej generacji Perla. Wynik nie został przedstawiony w formie formalnego dokumentu, ale jako podsumowanie wszystkich dokumentów RFC. W tym czasie Perl 6 istniał wyłącznie jako opis języka.

Perl 5.8 został po raz pierwszy wydany 18 lipca 2002 roku i od tego czasu otrzymuje coroczne aktualizacje. Ostatnia wersja Perl 5.8, o numerze 5.8.9, został wydany 14 grudnia 2008 roku. Perl 5.8 ulepszył obsługę Unicode, dodał nową implementację we/wy, dodał obsługę wielowątkowości, zwiększył precyzję numeryczną i dodał kilka nowych modułów.

W 2004 roku rozpoczęły się prace nad Synopsisem, pierwotnie pomyślanym jako seria dokumentów podsumowujących wspomniany dokument końcowy. Jednak stopniowo ta seria dokumentów stała się specyfikacją Perla 6. W lutym 2005 Otrius Tan rozpoczął pracę nad Pugs, interpreterem Perla 6 napisanym w Haskell. Była to pierwsza prawdziwa próba urzeczywistnienia Perla 6. Próba ta upadła w 2006 roku.

Kiedy masz ponad 20 lat

18 grudnia 2007 r., w 20. rocznicę powstania Perla 1.0, wydano Perl 5.10.0. Ta wersja zawierała wiele znaczących innowacji, które zbliżyły ją do Perla 6. Jedną z tych innowacji była nowa instrukcje przełączania(zwanych „podanymi”/„kiedy”), aktualizacją wyrażeń regularnych i „inteligentnym” operatorem dopasowywania „~~”.


„Perłowa” rocznica

Mniej więcej w tym czasie rozpoczęły się na dobre prace nad nową implementacją Perla 6, znaną jako Rakudo Perl, opracowaną w połączeniu z maszyną wirtualną Parrot. Od listopada 2009 r. Rakudo Perl jest regularnie aktualizowany co miesiąc i jest obecnie najbardziej kompletną implementacją Perla 6.

Znacząca zmiana w procesie rozwoju Perla 5 nastąpiła wraz z wydaniem Perla 5.11. Społeczność programistów przeszła na miesięczny cykl wydawniczy, z datami premiery planowanymi z trzymiesięcznym wyprzedzeniem.

12 kwietnia 2010 roku udostępniono publicznie wersję Perl 5.12.0. Godne uwagi funkcje obejmują obsługę nowej składni pakietu NAME VERSION, operatora Yada Yada (który służy do oznaczania kodu zastępczego, który nie został jeszcze zaimplementowany), kompletne rozwiązanie „problemu Y2038”, przeciążanie operatorów wyrażeń regularnych, obsługa DTrace (dynamiczne ślady), a także pełne wsparcie dla standardu Unicode 5.2.

Perl 5.12.2 został wydany 7 września 2010 r., a Perl 5.12.3 został wydany 21 stycznia 2011 r. Te wydania zawierają aktualizacje modułów, a także pewne zmiany w dokumentacji. Wersja 5.12.4 została wydana 20 czerwca 2011 r. Najnowsza wersja tej gałęzi, 5.12.5, została wydana 10 listopada 2012 r.

Ostatni plan pięcioletni

Perl 5.14 został wydany 14 maja 2011 r. Obsługa JSON została wbudowana począwszy od wersji 5.14.2. Najnowsza wersja tej gałęzi, 5.14.4, została wydana 10 marca 2013 roku.

Perl 5.16 został wydany 20 maja 2012 roku. Istotną innowacją jest możliwość precyzowania wymaganą wersję Perl do emulacji, co pozwala użytkownikom na aktualizację Perla przy jednoczesnym uruchomieniu starszych skryptów, które w przeciwnym razie byłyby niekompatybilne z nową wersją. Rdzeń Perla 5.16 obsługuje Unicode 6.1.

Perl 5.18 został wydany 18 maja 2013 r. Do istotnych innowacji należą nowe hooki dtrace, funkcje leksykalne, zwiększenie liczby funkcji zawartych w jądrze, rewizja implementacji skrótów ze względów bezpieczeństwa, obsługa Unicode 6.2.

Nowy został wydany 27 maja 2014 roku wersja stabilna- Perla 5.20.0. Rozwój trwał około 12 miesięcy, począwszy od wersji Perl 5.18.0 i zawierał około 470 000 zmodyfikowanych linii w 2900 plikach od 124 autorów.

Perl 5.22.1 został wydany w grudniu 2015 roku. Rozwój trwał 6 miesięcy.

9 maja 2016 roku ukazała się nowa stabilna wersja języka programowania Perl 5.24.0. Rozwój trwał około 11 miesięcy, począwszy od wersji Perl 5.22.0 i zawierał około 360 000 zmodyfikowanych linii w 1800 plikach od 77 autorów.

Według danych z lipca 2016 roku indeks TIOBE, mierzący wzrost popularności języków programowania, pokazał Perla na 9. miejscu:

To o 2 pozycje więcej niż przed rokiem.

Perła 6

Jak zauważono w Wikipedii, Perl 6 jest kolejną wersją języka programowania Perl (ze strukturalnego punktu widzenia Perl 6 wygodniej jest uważać za niezależny język programowania). Jest to rewolucyjne rozwinięcie języka, ten ostatni został napisany niemal „od zera”. Po raz pierwszy w historii Perla rozwój Nowa wersja rozpoczęła się od napisania specyfikacji, które zmieniają się do dziś.

Perl 6 podczas kompilacji programu tworzy kod bajtowy, który jest następnie wykonywany przez maszynę wirtualną. To samo podejście jest stosowane w Technologie Java i .NET Framework.

W rzeczywistości możemy mówić o nowym języku, który ma Poprzednia wersja Perl ma wspólne korzenie, ale nie jest z nim kompatybilny, chociaż specyfikacje sugerowały tryb zgodności.

Rozwój Perla 6 rozpoczął się w 2000 roku i trwa do dziś.

Pierwotnie Perl miał być narzędziem porównywalnym pod względem wydajności do skompilowanych narzędzi Uniksa. Szybkość działania miał zapewnić system wykonawczy Perla, który odczytuje kod źródłowy programu Perl i na bieżąco go kompiluje, po czym natychmiast interpretuje skompilowany program.

Larry Wall żartobliwie głosił trzy główne zalety programisty: lenistwo, niecierpliwość i zarozumiałość. Jego zdaniem Perl został zaprojektowany tak, aby spełniać te cechy programistyczne.