Perl (1) - Dávka teorie na úvod

Perl Úvodní díl seriálu věnujme vlastnostem a historii Perlu. Podíváme se na to, co je dobré vědět, než začneme psát programy.

8.2.2005 13:00 | Jiří Václavík | přečteno 106398×

Co je Perl?

Perl je jednoduchý a praktický interpretační programovací jazyk. V praxi je využívaný zejména na WWW serverech a při zpracování textu. V oblasti zpracovávání souborů patří bez nadsázky vůbec k těm nejlepším nástrojům, které existují. Ostatně právě kvůli tomu byl Perl navržen.

Co je cílem seriálu?

Odpověď je jednoduchá - cílem je pomoci čtenářům naučit se Perl.

Co je programování?

Programování můžeme pro naše potřeby chápat jako vytváření programu. Program je seznam činností, které byly nařízeny počítači k vykonání. Programem je například tato posloupnost příkazů:

Obecněnji lze říci, že programy nejsou jen pro počítače. Stačí nahlédnot do kuchařky. S trochou nadsázky se dá říct, že každý recept je programem. Program musí být napsán v jazyce, kterému rozumí jak autor, tak ten, pro koho je určen - v našem případě počítač.

Programování tedy znamená přesvědčit počítač, aby udělal to, co po něm chceme.

Něco z historie

Název Perl vznikl z akronymu Practical Extraction and Report Language. Autorem je Kanaďan Larry Wall (narozen 10. 3. 1949, osobní stránka). Napsal jej pro svou potřebu, protože mu chybělo něco jednoduššího než Céčko, co zároveň zvládne i větší požadavky. Potom v roce 1987 uvolnil Perl verze 1.0 pro veřejnost a sám se divil zájmu, který tím vyvolal. Proto se začal ještě dále vyvíjet. Z nástroje pro zpracování textu se povýšil na programovací jazyk s mnoha doplňky. Dnes se o vývoj Perlu stará skupina lidí v čele s Larrym Wallem.

Poslední stabilní verzí Perlu je verze 5.12.3 ze dne 21. 1. 2011. Perlu 5.x již táhne na dospělost, neboť je aktuální již od roku 1994. S velkým očekáváním však komunita čeká na Perl 6. Je vyvíjen již řadu let a uvolnění se dlouho odkládá. Manažeři dnes po těchto zkušenostech tvrdí: "Perl 6 has no schedule". Zvýšit se má rychlost a efektivita a přijde také řada revolučních změn, které Perl opět posunou daleko před konkurenci. Specifikace s vlastnostmi jazyka je již hotová - v ní se nyní dělají pouze drobné úpravy. Čeká se na implementaci interpretu - na něj si ještě nějakou dobu musíme počkat.

Na popularitě získal Perl i tím, že se osvědčil jako výborný nástroj pro CGI skriptování. CGI je externí program, který je spouštěn na žádost WWW serveru. CGI skriptům se budeme věnovat později v samostatných dílech. Dnes již nemá CGI takovou popularitu, protože ho z jeho pozice vytlačují jazyky typu PHP (PHP mimochodem z Perlu vychází). Podotkněme, že pro webové programování však Perl díky mod_perlu můžeme používat pohodlně dále.

Stručně o vlastnostech

Původně byl Perl napsán pro unixovou platformu, ale dnes běží i na mnoha dalších. Mezi nimi se dá relativně dobře přenášet. Samozřejmě, odlišnosti jsou, avšak často do kódu nemusíme zpravidla vůbec zasáhnout.

Hybnou silou lidstva je lenost. A pro líné lidi budeme těžko hledat tak jednoduchý jazyk, ve kterém napíšeme tolik jako v Perlu. Perl se řídí filozofií "za málo peněz hodně muziky". Množství kódu, které je třeba napsat, je oproti většině jiným jazykům velice malé. Psát programy lze neobyčejně rychle. Stejně tak se Perl díky těmto vlastnostem dají základy relativně rychle naučit. Ovšem časem je třeba si uvědomit, že psaní programů zde není přepisování konstrukcí jiných jazyků do syntaxe Perlu. Perl má svoji vlastní filozofii a největší efektivity dosáhneme, když ji porozumíme. Stejně jako u cizích řečí je třeba se naučit v Perlu myslet, abychom využili všeho, co nám skýtá. Ponořit se do hlubin Perlu bude vyžadovat velké úsilí. Cesta k tomu je dlouhá a plná nástrah, ale stojí za to.

Perl je pod GNU GPL Actistic licencí. Můžete ho používat zdarma a to i v komerčních projektech. K programování v Perlu potřebujeme jen interpret Perlu a textový editor. Není nutný ani kompilátor, který ale existuje také a Umožňuje nám poskytovat program ostatním, aniž by viděli zdrojový kód.

V Perlu se dá programovat strukturovaně i objektově.

Jednou z hlavních výhod Perlu je existence serveru CPAN (Comprehensive Perl Archive Network). Nalezneme zde interpret pro různé platformy, dokumentaci a především obrovskou databázi knihoven řešících rozličné problémy, která nemá pro žádný jiný jazyk obdoby. Díky ní se můžeme spolehnout na to, že Perl jen tak ze zemského povrchu nezmizí, ale naopak tu bude ještě hodně dlouho. Archivu se budeme věnovat ve speciálním dílu a knihovny z něj budeme následně často využívat. Existují i české mirrory, například ftp.linux.cz/pub/perl.

Jaké má Perl nevýhody? V Perlu nelze deklarovat proměnné a je zde velmi benevolentní typová kontrola (v Perlu 6 to bude řešeno). Syntaxe Perlu je velmi volná - třeba jen obyčejná podmínka se dá napsat nesčetně způsoby. Je vhodné se držet nějakých pravidel, protože Perl člověku dovolí někdy až příliš mnoho. Taková je ale filozofie jazyka.

Perl se běžně nepoužívá pro mnohasetstránková díla, ale spíše pro kratší a efektivní programy. Není to ale pravidlo. V Perlu existují i velké projekty, na kterých pracují celé týmy vývojářů.

Říká se, že Perl není příliš vhodným jazykem pro začínající programátory. Umožňuje používat nesrozumitelné konstrukce a člověk si může navyknout na některé zlozvyky. Pravdou je, že, pokud člověk nepustí Perl z řetězu, není to tak zlé. Většinou stačí snažit se psát přehledně a používat mód strict, později se lze seznámit s jinými mechanizmy, které člověku pomáhají psát programy čitelně.

Instalace a příprava

S kvalitními nástroji je práce vždy příjemnější. Předtím, než začneme programovat, je tedy nutné si tyto nástroje představit. Co bude tedy potřeba? Nějaký operační systém (v seriálu předpokládáme nějaký Linux, avšak lze použít i jiný systém), interpret jazyka Perl, textový editor a později, až se budeme věnovat databázím, tak Postgres nebo MySQL a také k vyvíjení CGI skriptů WWW server.

Operační systém

Perl je multiplatformní jazyk a spustíme ho prakticky na všech linuxových distribucích i jiných operačních systémech.

Interpret Perlu

S největší pravděpodobností ho již v systému máte. Přesvědčit se o tom můžete tak, že v konzoli zadáte příkaz:

$ perl -v
This is perl, v5.10.0 built for i586-linux-thread-multi

Copyright 1987-2007, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
$

Pokud vidíme podobný výstup, máme interpret instalován a o nic se dál starat nemusíme. První řádek výstupu obsahuje číslo verze. Je výhodné mít vždy tu nejnovější stabilní verzi.

Co dělat když Perl instalovaný nemáme? Nejjednodušší je ho nainstalovat z médií, ze kterých byla instalována naše distribuce.

Pokud tento způsob nemůžeme z nějakého důvodu praktikovat, je nutné Perl nějak získat - nejlépe stáhnout aktuální verzi z internetu. Ta je vždy k dispozici na www.perl.org/get.html. Soubor se obvykle jmenuje stable.tar.gz. Stačí ho jen rozbalit, přejít do získaného adresáře, zkompilovat a nainstalovat:

$ ./configure
$ make 
# make install

V případě úspěchu nyní Perl máme nainstalován, o čemž se ostatně můžeme přesvědčit:

$ perl -v

Programy pak budeme spouštět takto:

$ perl program.pl

Textový editor

Lze použít kterýkoliv, jehož výstupem je neformátovaný text. Měl by umět zvýrazňovat syntaxi Perlu a odsazovat. Pohodlně lze pracovat například v emacsu s cperl-mode.

Nedáte-li dopustit na vim, lze ho samozřejmě používat taktéž. K aktivaci zvýrazňování syntaxe je třeba příkaz :syntax on. Není třeba se starat o volbu jazyka - vim ho rozpozná podle přípony..

Existuje také řada propracovaných grafických vývojových prostředí. Volba je na každém.

Databáze

Nainstalujme si Postgres nebo MySQL nebo nějakou vaší oblíbenou. Jsou-li přímo v linuxové distribuci, máme vystaráno, jinak je najdeme na zmíněných odkazech. V seriálu se naučíme používat obě výše uvedené, avšak práce s ostatními je analogická. Perl podporuje širokou paletu databází, takže není třeba se bát absence příslušných ovladačů.

WWW server

Budeme předpokládat nějakou aktuální verzi Apache.

Překladač

Překladač je k dispozici v základní distribuci Perlu a je užitečný v případech, kdy chceme poskytnout program, ale zdrojový kód si chceme ponechat pro sebe. To se hodí při psaní komerčních aplikací. Překladač může nahradit interpret, neboť ho ke své činnosti nepotřebuje. Zdrojový kód však musí obsahovat všechny potřebné knihovny, a je tak o mnoho větší než obyčejný kód. Použitím překladače vznikne binární soubor. Překladač použijeme takto:

$ perlcc program.pl

Tak získáme spustitelný soubor ./a.out. Volbou -o můžeme určit získanému souboru jméno.

$ perlcc -o program program.pl

Tím byl vytvořen soubor ./program.

Ukázkový program

Podívejme se na úvod na program vypisující text. Ten zapíšeme v Céčku takto:

#include <stdio.h>
int main(void){
    printf ("Program v Cecku\n");
}

V Perlu lze týž efekt docílit následovně:

print "Program v Perlu"\n;

Uložíme-li tento kód do souboru program.pl, lze ho interpretovat následovně:

$ perl program.pl
Program v Perlu
$

Na co se můžete těšit?

Zde je seznam témat, které se v seriálu dříve či později objeví:

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=675