Latest web development tutorials

Pakiety i moduły Perl

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

BEGIN i END Moduły

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 { ... }
END { ... }
BEGIN { ... }
END { ... }
  • 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 语句块

Czym jest moduł Perl?

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.


Wymagają użycia i funkcji

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:

  • 1, wymagają ładowania Perl lub programu (.pm sufiksem może być pominięte, ale nie musi .pl)
  • 2, Perl stwierdzenie użycie jest zestawiane po wprowadzeniu wymagają czasu pracy wprowadza się
  • 3, Perl używać wprowadzenie modułu, ale również wprowadzenie modułu sub-modułem. I to nie może wymagać wprowadzenia do ponownego zestawienia
  • 4 stosuje się, aby spojrzeć na aktualną domyślnej @ INC środku, gdy moduł nie jest w słowach @ INC z wykorzystaniem nie został wprowadzony, ale może wymagać określonej ścieżki
  • 5, STOSOWANIE odwołuje moduł, jeśli nazwa moduł zawiera :: Podwójny dwukropek dwukropek podwoi jako separator ścieżki, odpowiednik Unix / lub pod Windows \. Takich jak:

    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;

Utwórz moduł Perl

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.


Instalowanie modułów Perla

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.