Създаване на пакети и модули в Perl, в документацията на компютъра от А до Я

Създаване на пакети и модули в Perl

В тази статия ще обсъдим процеса на създаване на пакети и модули и като пример, да създадете прост модул и пакет.

Intro
Сигурност и модулност - двете велики принципи на програмирането. Perl осигурява ефективността им, като им даде възможност да се раздели на програмата в полуавтономни фрагменти, така че програмистът не трябва да се притеснявате за конфликти между тях и останалата част от програмата. За разделяне на програмата в самостоятелни фрагменти, използвани Perl пакети, които създават непокриващи се от имена (именни пространства). Какво е име на домейн? Тази част от програмата със собствен обхват на глобална идентичност - с други думи, тя функционира като частна площ от програмиста.
В действителност, в Perl, че няма такова нещо като "обхвата на глобалните идентификатори" - всяка такава зона се ограничава до определен пакет. Създаване на пакет, вие ще получите някаква увереност, че кодът не се смесва с променливите и практики на друг фрагмент. Тя ви позволява да организирате код, предназначен за многократна употреба, под формата на пакети.
В допълнение, има пакети и Perl модули. Moudli - са пакети, организирани по специален начин. Те могат да се качват и се интегрира с дадена програма. В тази статия ще говорим за създаването на модули и пакети.

пакети
Пакетът може да бъде представена като единична Delphi. Кодът, който е поставен в опаковката, може да бъде поставен във външен файл, множество файлове, въпреки че някои пакети могат да бъдат поставени в един файл (което не е възможно в yunite Делфийския). Превключвате между различните блокове в рамките на файла, който искате с помощта на пакет команди. Да се ​​създаде проста пакет и да го запишете като package1.pl:

Екипът започва нов пакет пакет package1. Обърнете внимание на рутината и да започне END. Първият рутината се изпълнява веднага след пакета за изтегляне. Поради това обикновено се поставя инициализация код. Макар че би било по-вярно да се каже, че започват подпрограма се изпълнява веднага след като преводачът дума за него, т.е. преди края на пакета за изтегляне. Рутинна END се извършва при приключване на работата на преводача и може да съдържа код, който изпълнява окончателното operpatsii (като намаляване отворени файлове рутинни процедури започват и свършват, се наричат ​​по подразбиране (в действителност, вие никога няма да бъде в състояние да изрично да се обадя ЗАПОЧНЕТЕ :. Interpreter го унищожава веднага след употреба). Ето защо тези съчетания са съставени от главни букви, а на подводницата дума за тях може да се пропусне.
Обърнете внимание на рутинното subroutine1. Тя може да се нарече в кода, който използва пакета. В допълнение, трябва да се обърне внимание на екипа на връщане, разположен извън всякакви подпрограми - тя се връща "вярно", след като изтеглите пакета, показвайки по този начин, че пакетът е готов за работа (в действителност, се връща последната стойност, изчислена в организма пакет, така че често вместо връщане на линия 1 просто поставя устройството).
За да използвате този софтуер, кодът трябва да се постави в сценария изисква:
изисква "package1.pl";
Сега можете да се обърнете към идентификатори package1 пакет, отделяне на името на документа за самоличност с две колони "::". По-рано, като сепаратор е апостроф (да се внимава, тъй като сепаратор се използва сега). Но сега трябва да бъде Perl C ++ стил и употреба "::". Ето един пример на package1 пакет подпрограма разговор subroutine1:
изисква "package1.pl";
package1 :: subroutine1 ();
надписа "Hello!" ще се появи в резултат на тази програма. Можете също така да постави в пакети други идентификатори, като променлива:
пакет package1;
ЗАПОЧНЕТЕ <>
$ Var1 = 1;
под subroutine1
върне 1;
END <>
Използвайте тази променлива лесно. Достатъчно е да се замени "$" символа преди структурата на повикване. например:
изисква "package1.pl";
$ Package1 :: var1;
Имайте предвид, че символът "$" се поставя преди името на пакета, но не и за поста. в предната част на var1. Въпреки това, по този начин не е възможно да се стигне до описаните променливи с ключовата дума, ми: те имат лексикален обхват и е достъпно само в рамките на модула.
Когато се говори за идентификаторите може да се пропусне името на пакета, а след основния пакет ще бъде използван (низ $ var1 :: еквивалентно на $ главен: var1).
Ако програмата се нуждае от доста често се отнасят до номерата на пакетите, кодът става голям и труден за разбиране. За да се реши този проблем е необходимо да използвате модулите. При използване на модула, можете да експортирате наименованията, изброени в модула в текущото пространство от имена.

модули
Модули - това опаковката, проектиран в отделни файлове, чиито имена съвпадат миналата имената на модулите и имат разширение часа. Perl По силата на споразумението се посочва, че името на модула започва с главна буква. Кодът се съдържа в модул, за разлика от "партида" кодът може да изнася световни имена в настоящия обхват на глобалните имена. Това означава, че когато става дума за ID не е необходимо да укажете името на пакета.
Помислете за пример. Създаване на модул, наречен module1 и Спасете Module1.pm в досието му. В кода ЗАПОЧНЕТЕ подпрограма се изпълнява, когато модулът е заредена, ние ще използваме стандарта износител модул, който ще бъде изнесен име subroutine1 на подпрограмата:
пакет module1;
Започне употреба Износител ();
@ISA = "Износител";
@EXPORT = "subroutine1";
>
под subroutine1
return1;
END <>
За да използвате модула в програмата, трябва да го свържете с "използване" команда (той ще бъде включен по време на компилация). Ако се свържете модула изисква екип от модула е свързан по време на изпълнение на скрипта. например:
използва module1;
subroutine1 ();
В "Здравей!" Линия ще покаже резултатите от изпълнението на код.