Latest web development tutorials

Perl пакеты и модули

Perl Каждый пакет имеет отдельный синтаксис определения таблицы символ:

package mypack;

Это утверждение определяет пакет под названиемMyPack во имя всех переменных и подпрограмм , определенных в дальнейшем хранятся в таблице символов , связанных с пакетом, пакет, пока он встречает еще одно заявление до сих пор.

Каждая таблица символов имеет свой собственный набор переменных, подпрограмм, каждое имя группы не имеет значения, так что вы можете использовать то же имя переменной в разных пакетах, которые представляют различные переменные.

Доступ из одного пакета в другой переменной пакета, вы можете указать имя пакета "+ двойное двоеточие (: :) + имя переменной" подход.

Сохранение переменных и подпрограмм имен таблицы символов по умолчанию , связанный с пакетом называетсяглавной связаны между собой .Если программа определяется в других пакетах, когда вы хотите переключиться обратно в режим таблицу символ по умолчанию, вы можете переназначить основной пакет:

package main;

Таким образом, следующая программа, как будто никогда не определены пакеты, переменные и имена подпрограмм в обычном режиме хранения.

В следующем примере файл имеет основной и Foo пакет.__PACKAGE__ Специальная переменная для имен выходных пакетов:

#!/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;

Вышеприведенная программа, выход:

包名 : main 1
包名 : Foo 10
包名 : main 100
包名: main 10

Начинайте и заканчивайте модули

Perl язык предоставляет два ключевых слова: BEGIN, END. Они могут представлять собой отдельный набор скриптов, которые выполняются перед тем программа работает или тела после запуска.

Синтаксис выглядит следующим образом:

BEGIN { ... }
END { ... }
BEGIN { ... }
END { ... }
  • КаждыйНАЧАТЬ блок , но выполняется перед другими операторами , выполненных после того, как сценарий Perl загружаются и компилируются.

  • КаждыйEND блок операторов выполняется до того , как интерпретатор завершает работу.

  • Начинайте и заканчивайтеблок особенно полезен при создании модуля Perl.

Если вы не понимаете, большой, мы можем видеть примеры:

#!/usr/bin/perl

package Foo;
print "Begin 和 Block 实例\n";

BEGIN { 
    print "这是 BEGIN 语句块\n" 
}

END { 
    print "这是 END 语句块\n" 
}

1;

Вышеприведенная программа, выход:

这是 BEGIN 语句块
Begin 和 Block 实例
这是 END 语句块

Что такое модуль Perl?

Perl5 с пакетом Perl для создания модуля.

Perl модуль представляет собой многократно используемый пакет, имя модуля и то же имя пакета, расширение файла определено для.pm.

Ниже мы определим модуль Foo.pm, код выглядит следующим образом:

#!/usr/bin/perl

package Foo;
sub bar { 
   print "Hello $_[0]\n" 
}

sub blat { 
   print "World $_[0]\n" 
}
1;

Perl модули, посвященные отметить следующее:

  • Функции ииспользование потребуетзагрузочного модуля.

  • @INC Perl это специальный встроенный массив , который содержит путь к каталогу на расположение библиотеки подпрограмм лежит.

  • требуют и использованиевызовов функцийEvalфункцию для выполнения кода.

  • Конец1; выполнение возвращает TRUE, это является обязательным условием , в противном случае она возвращает ошибку.


Требуют использования и функции

Модуль может быть вызван с помощью функциитребуют следующим образом :

#!/usr/bin/perl

require Foo;

Foo::bar( "a" );
Foo::blat( "b" );

Вы можете также использовать функцию для обозначения:

<pre>
#!/usr/bin/perl

use Foo;

bar( "a" );
blat( "b" );

Мы отмечаем необходимость требовать ссылки на имя заданной функции пакета, и не нужно использовать, главное различие между ними состоит в том:

  • 1, требуют для загрузки Perl модуля или программы (.pm суффикс может быть опущен, но должен .pl)
  • 2, используйте оператор Perl скомпилирован при введении, требуют выполнения вводится
  • 3, Perl использовать введение модуля, но и внедрение модуля суб-модуля. И это не может потребовать введения в переформулировок
  • 4, использование смотреть на текущей @INC по умолчанию внутри, после того, как модуль не в словах @INC с использованием не вводится, но может потребоваться указанный путь
  • 5, ПОЛЬЗОВАНИЯ ссылки модуль, если имя модуля содержит :: двойное двоеточие, двоеточие удвоиться как разделителей пути, эквивалент Unix / или под Windows \. Такие, как:

    use MyDirectory::MyModule

Вы можете экспортировать список символов из модуля, добавив следующее утверждение использовать модули:

require Exporter;
@ISA = qw(Exporter);

@EXPORT Массив содержит переменные и функции, полученные от имени по умолчанию:

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;

Создайте модуль Perl

Вы можете легко создать модуль Perl распределения Perl поставляется с h2xs инструмента.

Вы можете ввести в командной строке режим h2xs посмотреть на список параметров.

h2xs синтаксис:

$ h2xs -AX -n  ModuleName

Параметр Описание:

  • -A Игнорируется механизм автозагрузку

  • -X Игнорируется XS элемент

  • -n Задает имя расширения

Например, если ваш файлPerson.pm модуля, используйте следующую команду:

$ h2xs -AX -n Person

Выше вывод программы будет:

Writing Person/lib/Person.pm
Writing Person/Makefile.PL
Writing Person/README
Writing Person/t/Person.t
Writing Person/Changes
Writing Person/MANIFEST

Человек в каталоге вы можете увидеть вновь добавленные каталогов и файлов Объяснение:

  • README: Этот файл содержит информацию об установке, зависимостей модуля, информацию об авторских правах, и так далее.

  • Изменения: Этот файл журнала изменений в файле проекта (история изменений).

  • Makefile.PL: Это стандартный Perl Makefile строитель. Используется для создания Makefile.PL файла для компиляции модуля.

  • МАНИФЕСТ: Этот файл используется для автоматического создания типа tar.gz распределения модуля версии. Таким образом, вы можете поместить ваш модуль CPAN, чтобы получить опубликованы или распространены другим. Он содержит список всех файлов в этом проекте.

  • Person.pm: Это основной файл модуля, который содержит код для обработчика mod_perl (код обработчика).

  • Person.t: для этого модуля некоторые тестовые скрипты. По умолчанию, это просто модуль проверки загружен, вы можете добавить новый блок тестирования.

  • т /: тестовый файл

  • / Библиотека: фактический источник каталога хранилища

Вы можете использовать команду деготь (Linux) на приведенной выше директории упаковываются в Person.tar.gz.


Установка модулей Perl

Мы можем простоPerson.tar.gz сжатый файл , чтобы распаковать установку, выполните следующие действия:

tar xvfz Person.tar.gz
cd Person
perl Makefile.PL
make
make install

Первый запуск "Perl Makefile.PL" в текущем каталоге генерируемого Makefile;

Затем запустите "сделать" для компиляции и создать требуемый файл библиотеки;

Вслед за "сделать тест" тест компилировать результаты верны; последний прогон "сделать установку", чтобы установить файлы библиотеки в системную директорию, завершив таким образом весь процесс компиляции.