Najlepszy samouczek Pakiety i moduły Perl W 2024 r. W tym samouczku możesz dowiedzieć się BEGIN i END Moduły,Czym jest moduł Perl?,Wymagają użycia i funkcji,Utwórz moduł Perl,Instalowanie modułów Perla,
Perl Każdy pakiet ma osobny Składnia definicji tabeli symbolem jest:
package mypack;
To stwierdzenie określa pakiet o nazwiemypack w imieniu wszystkich zmiennych i podprogramów zdefiniowano dalej są przechowywane w tabeli symboli związanych z pakietem, pakiet,aż napotka kolejne oświadczenie tej pory.
Każda tablica symboli ma swój własny zestaw zmiennych, podprogramów, każda nazwa grupy nie ma znaczenia, więc można użyć tej samej nazwy zmiennej w różnych opakowaniach, które reprezentują różne zmienne.
Dostęp z jednego pakietu do innej zmiennej pakiet, można określić nazwę pakietu "+ podwójnym dwukropkiem (: :) + nazwa zmiennej" podejście.
Zapisywanie nazw zmiennych i podprogramów tabeli domyślny symbol związany z pakietem jest nazywanygłównym-linked.Jeśli program jest zdefiniowane w innych pakietach, gdy chcesz powrócić do korzystania z domyślną tabelę symboli, można przypisać główny pakiet:package main;
Zatem następny program, tak jakby nie określono pakiety, zmienne i nazwy podprogramów jak zwykle przechowywania.
Poniższy przykład plik ma pakiet główne i Foo.__PACKAGE__ Specjalna zmienna wyjściowa dla nazw pakietów:
#!/usr/bin/perl # main 包 $i = 1; print "包名 : " , __PACKAGE__ , " $i\n"; package Foo; # Foo 包 $i = 10; print "包名 : " , __PACKAGE__ , " $i\n"; package main; # 重新指定 main 包 $i = 100; print "包名 : " , __PACKAGE__ , " $i\n"; print "包名: " , __PACKAGE__ , " $Foo::i\n"; 1;
Powyższy program, wyjście jest:
包名 : main 1 包名 : Foo 10 包名 : main 100 包名: main 10
język Perl zapewnia dwa słowa kluczowe: początek, koniec. Mogą to być oddzielny zestaw skryptów, które wykonują przed przebiegów programu lub ciała po uruchomiony.
Składnia jest następująca:
BEGIN { pl. } END { pl. } BEGIN { pl. } END { pl. }
Każdy blokBEGIN ale wykonywane przed innymi sprawozdania uruchamiany po skrypcie Perl załadowane i skompilowany.
Każdy blokEND sprawozdań wykonywane przed interpreter zamykany.
BEGIN i ENDbloku jest szczególnie przydatna podczas tworzenia modułu Perl.
Jeśli nie rozumieją duży, widzimy przypadki:
#!/usr/bin/perl package Foo; print "Begin 和 Block 实例\n"; BEGIN { print "这是 BEGIN 语句块\n" } END { print "这是 END 语句块\n" } 1;
Powyższy program, wyjście jest:
这是 BEGIN 语句块 Begin 和 Block 实例 这是 END 语句块
Perl5 z pakietem Perl utworzyć moduł.
Perl jest opakowanie wielokrotnego użytku, nazwę modułu i tę samą nazwę pakietu, rozszerzenie pliku zdefiniowane dla.pm.
Poniżej zdefiniować moduł Foo.pm, kod w następujący sposób:
#!/usr/bin/perl package Foo; sub bar { print "Hello $_[0]\n" } sub blat { print "World $_[0]\n" } 1;
Perl modułów odnoszących się zwrócić uwagę na następujące:
Funkcja izastosowanie wymagamodułu obciążenia.
@ INC Perl jest specjalną wbudowaną tablicą, która zawiera ścieżkę katalogu do lokalizacji funkcji bibliotecznych polega.
Zastosowanie i funkcja wymagapołączenia funkcjievalwykonanie kodu.
Zakończyć1; wykonanie zwraca TRUE, jest koniecznością, w przeciwnym razie zwraca błąd.
Moduł może być wywoływany przez funkcjęwymagają następująco:
#!/usr/bin/perl require Foo; Foo::bar( "a" ); Foo::blat( "b" );
Można również użyć funkcji w odniesieniu do:
<pre> #!/usr/bin/perl use Foo; bar( "a" ); blat( "b" );
Dostrzegamy potrzebę wymagać odniesienia do nazwy określonej funkcji pakietu, i nie trzeba używać, główną różnicą między nimi jest:
use MyDirectory::MyModule
Można eksportować listę symboli z modułu dodając następujące oświadczenie do korzystania z modułów:
require Exporter; @ISA = qw(Exporter);
@EXPORT Array zawiera domyślne zmienne i funkcje pochodzi od nazwy:
package Module; require Exporter; @ISA = qw(Exporter); @EXPORT = qw(bar blat); # 默认导出的符号 sub bar { print "Hello $_[0]\n" } sub blat { print "World $_[0]\n" } sub splat { print "Not $_[0]\n" } # Not exported! 1;
Można łatwo utworzyć moduł Perl Perl dystrybucji pochodzi z h2xs narzędziowych.
Można wpisać w wierszu poleceń h2xs tryb spojrzeć na jego liście parametrów.
h2xs składni:
$ h2xs -AX -n ModuleName
Parametr Opis:
-A Ignorowany mechanizmu autoload
-X Ignorowany XS elementem
-n Określa nazwę rozszerzenia
Na przykład, jeśli plikPerson.pm modułu, należy użyć następującego polecenia:
$ h2xs -AX -n Person
Powyższy wyjścia programu będzie:
Writing Person/lib/Person.pm Writing Person/Makefile.PL Writing Person/README Writing Person/t/Person.t Writing Person/Changes Writing Person/MANIFEST
Osoba w katalogu można zobaczyć nowo dodanych katalogów i plików Objaśnienie:
README: Ten plik zawiera informacje o instalacji, zależnościach modułu, informacji o prawach autorskich, i tak dalej.
Zmiany: Zmiana pliku dziennika jako plik Twojego projektu (changelog).
Makefile.PL: Jest to standardowy Perl Makefile budowniczym. Służy do utworzenia pliku Makefile.PL skompilować moduł.
Manifeście: Plik ten służy do automatycznego budowania typu tar.gz dystrybucji wersji modułu. Więc można umieścić moduł CPAN, aby publikowane lub rozpowszechniane na innych. Zawiera on listę wszystkich plików w tym projekcie.
Person.pm: Jest to główny plik moduł, który zawiera kod programu obsługi mod_perl (kod obsługi).
Person.t: dla tego modułu niektóre skrypty testowe. Domyślnie jest to po prostu sprawdzając moduł załadowany, można dodać nową jednostkę testową.
t /: plik testowy
lib /: katalog przechowywania rzeczywiste źródło
Można użyć polecenia tar (Linux na) do powyższego katalogu zapakowanego jako Person.tar.gz.
Możemy po prostuPerson.tar.gz skompresowany plik rozpakować instalację, należy wykonać następujące czynności:
tar xvfz Person.tar.gz cd Person perl Makefile.PL make make install
Pierwsze uruchomienie "Perl Makefile.PL" w bieżącym katalogu generowanego Makefile;
Następnie uruchom "make" skompilować i utworzyć żądany plik biblioteki;
Obserwowani przez "make test" Test kompilacji wyniki są prawidłowe; ostatni bieg "make install", aby zainstalować pliki bibliotek do katalogu systemowego, kończąc w ten sposób cały proces kompilacji.