160 likes | 355 Views
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ý. Co je Perl: Interpretovaný jazyk s možností OOP přístupu, původně orientovaný na zpracování textu Spousta podpůrných knihoven pro různé oblasti
E N D
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ý • Co je Perl: • 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” typuvoid 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/perlprint “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)
Smyčka na čtení ze souboru #!/usr/bin/perl -w while ($r=<stdin>) { print $r; }
Hledání v manuálech man perlman perlsynman perlopman perlfuncman perlreZkuste 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” hraniceslova
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