Perl Co je Perl a na co je dobrý Základní konstrukce jazyka Jednoduché regulární výrazy Cvičné příklady Literatura
Co je Perl a na co je dobrý Interpretovaný jazyk s možností OOP přístupu, původně orientovaný na zpracování textu Spousta podpůrných knihoven pro různé oblasti Syntaxe podobná Pascalu nebo C ale volnější V čem je skvělý: Zpracování textu, regulární výrazy Rychlá a “špinavá” řešení problémů Intuitivní jazyk Zábavnější programování díky obskurním jazykovým konstrukcím
Stinné stránky: Není vhodný pro velmi velké projekty Umožňuje psát zcela nesrozumitelný kód: $/='}"6ft.(&^)+@<B#,/JK2=>?@7$eJp.',$"= eval$/,@/ =split//,$/.$@,$/=0;while($/<26){$_.=$/[ord($/[++$/])-7]}print ...ale běžně se téhle vlastnosti nevyužívá
„Hello world!“ Nejjednodušší program: print “Hello world!”; Na konci příkazu je vždycky středník. Příkaz – parametry nejsou nutně v závorce.
Nejjednodušší program: Skalár Jednoduchá proměnná (číslo, řetězec, pointer) $zvire = “Panda červená“; $pocet_kober = 42; Seznam Jednorozměrné pole skalárů @zviratka = (“pejsek”, “kocicka”); $zviratka[1] = “kocicka”; Hash Dvojice skalárů – klíč a jemu příslušný obsah %mistnosti = ( “13A” => “Vybeh zeber”, “25C” => “Pripravna zveriny”);
„Hello buvol!“ Práce se skalární proměnnou – celý program: Z čehož: Žádné povinné konstrukce ,,základního těla” typu void main () {} v C. Není potřeba proměnnou definovat, typ se určí podle toho co do ní přiřazujeme – tady jen pomocí ,,$” říkáme, že to je skalár. $buvolu = 17; print “buvolu: $buvolu\n”;
Spouštění programu Spouštění programu: Jen tak: perl program.pl S výpisem varování: perl -w program.pl Jako spustitelného souboru (UNIX) (viz dále)
Jak získat v shellu spustitelný program? Na prvním řádku určíme jako interpreter Perl, program tedy vypadat třeba takhle: #/usr/bin/perl print “Hello world!“ Označíme program jako spustitelný: chmod a+x program.pl
Příklad 1: Napište program v Perlu, kde: Přiřadíte číslo nebo text do skalární proměnné Vypíšete ho s nějakým textem (ala bůvoli) na terminál Upravte ho, aby šel spustit v shellu ...a spusťte ho Pomocí interpretru (perl program.pl) Přímo jako program (./program.pl)
Big buvol is watching you...
Smyčka na čtení ze souboru #!/usr/bin/perl -w while ($r=<stdin>) { print $r; }
Hledání v manuálech man perl man perlsyn man perlop man perlfunc man perlre Zkuste si hledání pomocí „/“ a „n“. Zkuste najít dokumentaci k „while“.
Vypiš jen řádky odpovídající regexp: #!/usr/bin/perl -w while ($r=<stdin>) { if ($r =~ /leguan/) { print $r; }
Vsechno kolem infekce, jenom však ne dezinfekce #!/usr/bin/perl -w while ($r=<stdin>) { if ($r =~ /\binf[ie]/) { print $r; } Buďto ,,i” a nebo ,,e” hranice slova
Jednoduché nahrazování: #!/usr/bin/perl -w while ($r=<stdin>) { $r =~ s/^\s{3}//g; print $r; }
Literatura Domácí stránka Perlu: http://www.perl.org/ Anglické stránky na WWW http://www.perldoc.com/perl5.8.0/pod/perlintro.html http://erudil.com/preqr.pdf http://www.itlab.musc.edu/docs/perl_regexp/ České WWW stránky: http://www.perl.cz http://perl.eurohost.cz/ http://www.root.cz/clanek/942 Knihy v češtině: Pavel Satrapa: Perl pro zelenáče. Neokortex, Praha 2000. Sriram Srinivasan: Perl pro pokročilé, Computer Press, Praha 1998