Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Balíky Hlavní balík - main - zatím jsme s jiným nepracovali Rozdělují tzv. namespaces = množiny jmen pro proměnné $lemma = "cukr"; znamená $main::lemma.

Podobné prezentace


Prezentace na téma: "Balíky Hlavní balík - main - zatím jsme s jiným nepracovali Rozdělují tzv. namespaces = množiny jmen pro proměnné $lemma = "cukr"; znamená $main::lemma."— Transkript prezentace:

1 Balíky Hlavní balík - main - zatím jsme s jiným nepracovali Rozdělují tzv. namespaces = množiny jmen pro proměnné $lemma = "cukr"; znamená $main::lemma = "cukr"; $Potraviny::lemma = "cukr"; # jiná proměnná use strict => nutné používat globální proměnné celým jménem

2 Package Celá jména se nemusí používat, když nastavíme balík: Příkaz package - nastavení implicitního balíku Platí –do konce bloku, ve kterém byl zaveden, –nebo dokud se nezavede nový. package Potraviny; $lemma = "cukr"; # znamená, $Potraviny::lemma

3 Moduly balíčky pro vícenásobné použití rozdělení podle tématu - logicky ucelený –proměnné –datové struktury –podprogramy šetří čas spousta předpřipravených CPAN - Comprehensive Perl Archive Network

4 Použití uložení v jednom souboru, který se vkládá do programu jméno souboru = jméno modulu s příponou.pm –zvyk - 1. písmeno velké vložení modulu do programu use –použití před začátkem programu, ať se zapíše kdekoli use Modul;

5 Hledání modulu - pole @INC Seznam cest, kde Perl hledá moduly a ostatní soubory Cestu nelze přidat jednoduše push (@INC, ~/MojeModuly); use Morfo; protože 1. příkaz se provádí při běhu, druhý už při kompilaci Tedy takto: use lib "~/MojeModuly"; use Morfo;

6 Vytvoření modulu Modul může obsahovat podprogramy –veřejné - nabízejí se k použití uživateli –soukromé - skryté před uživatelem, vlastně pomocné package Morfo; use Exporter; @ISA = qw(Exporter); @EXPORT = qw(radka vypis); # podprogramy k dispozici # teď přijde obsah podprogramů radka, vypis a možná i dalších

7 sub radka # parametry: prectena radka # vystup: odkaz na strukturu slovo { my $line = shift(@_); chomp $line; my @info = $line =~ m/^[^>]+>([^ ([^ (.+)/; my $slovo = {"slovo" => $info[0], "lemma" => $info[1], "tag" => $info[2]}; return $slovo; }

8 Moduly podle témat Pomocí dvojité dvojtečky :: Rozdělení do adresářů –Adresář MojeModuly, v něm soubor Morfo.pm obsahující modul Morfo. use lib "~/MojeModuly"; use MojeModuly::Morfo;

9 @EXPORT a @EXPORT_OK @EXPORT - pole, do kterého se ukládají identifikátory (podprogramy, proměnné), které se automaticky importují do programu, kde se používá modul (příkaz use). @EXPORT_OK - totéž jako pole @EXPORT, ale v programu musí být explicitně uvedeno, které identifikátory se mají importovat. Pole @EXPORT se v tom případě ignoruje use MojeModuly::Morfo qw(radka);

10 Pragma speciální druh modulu ve standardní distribuci Perlu nepřidává nové konstrukce, ale ovlivňuje chování programu některé už známe: –use locale –use strict –use lib

11 CPAN http://search.cpan.org/ rozdělené tematicky vyhledávání instalace - jen root dokumentace - popis použití

12 Příklady modulů z CPAN Env –zpřístupňuje proměnné prostředí - globální proměnné se stejným názvem, např. $HOME, $PATH. Term::ReadKey –funkce ReadKey umožňuje číst ze standardního vstupu jednotlivý znak, není třeba použít Enter. Getopt::Std –funkce getopts rozeznává volby od parametrů


Stáhnout ppt "Balíky Hlavní balík - main - zatím jsme s jiným nepracovali Rozdělují tzv. namespaces = množiny jmen pro proměnné $lemma = "cukr"; znamená $main::lemma."

Podobné prezentace


Reklamy Google