LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> 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 | Články autora | přečteno 79015×

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ů:

  • požádej uživatele o dvě čísla
  • načti je od něj
  • sečti je
  • pošli jejich součet na výstup

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í:

  • Různé typy proměnných, operace, funkce pro práci s nimi
  • Řídící konstrukce
  • Podprogramy, moduly
  • Vstup a výstup, formátování řetězců
  • Práce se soubory a databázemi
  • Spolupráce s příkazovým řádkem, operačním systémem
  • Regulární výrazy
  • CGI a webové programování
  • Objektově orientované programování
  • Dokumentace
  • Testování
  • Práce s různými typy dat
  • Programování GUI
  • Perl 6

Verze pro tisk

pridej.cz

 

DISKUZE

Má cenu se učit PERL? 22.2.2010 20:16 David „General" Klouček
  |- Re: Má cenu se učit PERL? 23.2.2010 15:48 Hynek (Pichi) Vychodil
  L Re: Má cenu se učit PERL? 23.2.2010 17:48 Radim Kolář
    L Re: Má cenu se učit PERL? 23.2.2010 21:07 David „General" Klouček




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

24.10.2014 17:45 /Petr Ježek
Hyper-Z pro radeony se vrací. Anreas Böll vydal patch umožňující opětovné povolení Hyper-Z v aktuální mesa 10.3 pro radeon R600g a radeonsi. Doporučuje se aplikovat, testovat a reportovat případné problémy před vydáním mesa10.4 v prosinci.
Komentářů: 1

24.10.2014 7:33 /MaReK Olšavský
Vyšlo Ubuntu 14.10 a spiny s dalšími desktopy Kubuntu 14.10, Xubuntu 14.10 a poprvé i Ubuntu-Mate (Lubuntu 14.10 bude opožděno). Změn je poměrně málo, nestihli zařadit aktuální GNOME a je bez convergence části.
Přidat komentář

24.10.2014 7:33 /MaReK Olšavský
Přípravy na vydání Debianu 8 jsou v plném proudu a nejednoho potenciálního uživatele by mohla zajímat připravovaná podpora multimédií pro novou verzi (jinak dosti konzervativní distribuce). Asi nebude potřeba používat obskurdní repozitáře kvůli podpoře přehrávání audia/videa a hudebníky nejspíše také potěší.
Přidat komentář

23.10.2014 7:13 /MaReK Olšavský
CERN používá OpenStack přibližně rok. Jaké je aktuální používání při výzkumu ukazuje článek na OpenSource.com. Vyprodukovaných dat, z měření, není malé množství a pro jejich zpracování je potřebný výkon několikatisíců serverů a pracovních stanic.
Přidat komentář

23.10.2014 7:13 /MaReK Olšavský
Prodejce starších her; jež jsou často hratelnější, než moderní grafické orgie; Good Old Games dosáhl milníku 100 her připravených pro Linux (nejde o portace, ale připravené konfigurace DOSBoxu/Wine).
Přidat komentář

23.10.2014 7:13 /MaReK Olšavský
O malou reklamu pro Ubuntu se postaral Andy Swan, se svým laptopem, při analýze počasí pro tragickou Velkou Cenu Japonska 2014 (Formule 1).
Přidat komentář

22.10.2014 7:19 /MaReK Olšavský
Programovacímu jazyku Swift, jenž nedávno zveřejnil Apple a je uzavřený, vzniká svobodná odpověď Phoenix (repozitář). Jazyk bude stejný, takže lze očekávat, že se Apple bude bránit i soudně. Název Phoenix už nejspíše také někdo používá, starší pamatují, že se tak chvíli jmenoval dnešní Mozilla Firefox.
Přidat komentář

22.10.2014 7:19 /MaReK Olšavský
Programátorům v PHP je určen nástroj RIPS, který jim pomůže odhalit zranitelnosti v jejich kódu. Pokud znáte další nástroje, podělte se o ně v diskusi.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

24.10.2014 17:47 / Petr Ježek
Andreas

16.10.2014 7:56 / Leo
Sanba

13.10.2014 7:20 / MaReK Olšavský
Re: PDF a podpis

10.10.2014 8:01 / Hynek Beran
PDF a podpis

10.10.2014 7:41 / Dusan Hlavac
Re: Takže nic.

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2014) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze | zákony online