Ocenite etot tekst:


     V  Pel  realizovan  mehanizm  modulej.  Modul'  eto gruppa
podprogramm i peremennyh obychno vklyuchennyh v odin fajl.  Vnutri
odnogo  modulya  mozhno  opredelit'  drugoj modul'. Nachalo modulya
opredelyaetsya direktivoj:

	packages imya_modulya;

     Konec  modulya  eto  konec bloka ili fajla. Golovnoj modul'
imeet po  umolchaniyu  imya  main.  Na  imya  vnutri  modulya  mozhno
ssylat'sya dobavlyaya '::' posle imeni modulya.
 Naprimer:

	$main::var1	- peremennaya v golovnom module.

	::var1		- to zhe samoe. Imya main mozhno opuskat'.

	$modul'1::var1	- peremennaya v module 'modul'1'

	$modul'1::modul'2::var1 - Modul'2 soderzhitsya v module 1.

Tol'ko identifikatory nachinayushchiesya s bukvy ili simvola '_' hranyatsya
v prostrantsve imen tekushchego modulya. Ostal'nye hranyatsya v prostranstve
golovnogo modulya main.
Krome etogo imena STDIN, STDOUT, STDERR, ARGV, ARGVOUT, ENV, INC i SIG
tak zhe hranyatsya v golovnom module.



Vse imena modulya hranyatsya v associativnom massive (heshe) s imenem
modulya k kotoromu dobavleny simvoly "::". Takim obrazom imena
golovnogo modulya hranyatsya v %main:: , modulya 'mod1' v %mod1::
i t.d. Vyrazhenie vida *imya ukazyvaet znachenie elementa hesha 'imya'
eto udobno dlya opredeleniya konstant.

Naprimer:
	*pi = \3.14159;

Zdes' peremennaya $pi - eto konstanta pi kotoruyu uzhe nel'zya izmenit'.



Konstruktor - eto podprogramma kotoraya vypolnyaetsya v moment sozdaniya
ob®ekta, a destruktor - udaleniya ob®ekta. Dlya modulya eto podprogrammy
s imenami BEGIN i END. Pri opredelenii etih podprogramm slovo
sub mozhno opuskat'.

Konstruktor BEGIN vypolnyaetsya srazu kak tol'ko vozmozhno t.e. kak tol'ko
on opredelen dazhe ne zavershaya dal'nejshij razbor programmy. Mozhno ukazat'
neskol'ko blokov BEGIN. Oni budut vypolnyat'sya odin za drugim v poryadke
opredeleniya.

Destruktor END vypolnyaetsya poslednim kak tol'ko vozmozhno t.e. pri
zavershenii raboty interpreratora. Mozhno ukazat' nesol'ko blokov END
pri etom oni budut vypolnyat'sya v obratnom opredeleniyu poryadke.




V Pel net special'nogo sintaksisa dlya klassov. No funkcional'no
polnocennymi klassami mogut byt' moduli. Pri etom podprogrammy modulya
stanovyatsya metodami, a s pomoshch'yu massiva @ISA mozhno realizovat'
mehanizm nasledovaniya v klassah. Bolee podrobno klassy opisany otdel'no.



Esli vy hotoite sozdat' modul' otdel'nym fajlom i ispol'zovat'
kak biblioteku podprogramm, pri etom vyzyvat' podprogrammy biblioteki
ne ukazyvaya imeni modulya, vam neobhodimo oformit' modul' sleduyushchim
obrazom:

	package imya_modulya;	# Takoe zhe kak i imya etogo fajla bez rasshireniya '.pm'
	require Exporter;	# Obyazatel'naya stroka dlya eksporta imen
	@ISA = qw(Exporter);	# -//-
	@EXPORT = qw(func1 func2) # Perechislyaem imena funkcij. Vnimanie ! net zapyatoj!
	@EXPORT_OK = qw( $peremennaya @massiv ); # Ukazat' publichnye peremennye, massivy i t.d. esli neobhodimo
	{  # Nachalo bloka modulya
	.....
	sub func1
	........
	sub func2
	........
	1;
	}

Dannyj fajl s rasshireniem ".pm" dolzhen hranit'sya v odnoj iz bibliotechnyh
direktorij Pel. Oni perechisleny v massive @INC odno iz nih obychno
"/usr/local/lib/perl/".

V golovnoj programme vy ukazyvaete:

	use imya_modulya;

i vam stanovyatsya dostupny imena podprogramm dannogo modulya.




Standartnyj nabor bibliotek obychno postavlyaetsya s distributivom Pel
oni razdelyayutsya na pragma biblioteki (rabotayut kak direktivy kompilyatoru)
i standartnye biblioteki.

Pragma bibliototeki.

Dannye biblioteki ispol'zuyut kak:

	use imya;

kogda hotyat vklyuchit' dejstvie i

	no imya;

kogda vyklyuchit'.



diagnostics
	Vklyuchit' rezhim rasshirennoj diagnostiki.

integer
	Ispol'zovat' celochislennuyu arifmetiku.

less
	Rezhim minimal'noj zagruzki kompilyatora.


overload
	Rezhim pereopredeleniya operatorov.

sigtrap
	Rezhim slezheniya za preryvaniyami.

strict
	Rezhim ogranichennogo ispol'zovaniya "opasnyh" operatorov.

subs
	Rezhim obyazatel'nogo deklarirovaniya podprogramm.


Standartnye biblioteki.

AnyDBM_File
	Vozmozhnost' raboty s raznymi tipami baz dannyh.

AutoLoader
	Zagruzka v pamyat' funkcij tol'ko vo vremya vyzova.

AutoSplit
	Razdelit' modul' dlya avtozagruzki.

Benchmark
	Analiz skorosti ispolneniya programmy.

Carp
	Preduprezhdeniya ob oshibkah.

Config
	Dostup k konfiguracii Pel.

Cwd
	Poluchit' imya tekushchej rabochej direktorii.

DB_File
	Rabota s bazoj dannyh formata Berkley DB.

Devel::SelfStubber
	Rezhim otladki avtozagruzki.

DynaLoader
	Dinamicheskaya zagruzka bibliotek C.

English
	Ispol'zovat' dlinnye imena vstroennyh peremennyh.

Env
	Importirovat' imena peremennyh okruzheniya

Exporter
	Obespechivaet eksport/import dlya modulej.

ExtUtils::LibList
	Opredelyaet ispol'zuemye biblioteki.

ExtUtils::MakeMaker
	Sozdaet fajl proekta Makefile

ExtUtils::Manifest
	Programmy dlya sozdaniya i proverki fajla MANIFEST

ExtUtils::Mkbootstrap
	Primeneie fajla nachal'noj zagruzki dlya DynaLoader.

Fcntl
	Opredeleniya kak i v S Fcntl.h

File::Basename
	Sintaksicheskij razbor specifikacii fajla.

File::CheckTree
	Bystryj prohod po direktoriyam diska.

File::Find
	Bystryj poisk fajlov po direktoriyam.

FileHandle
	Obespechivaet ob®ektnyj metod dostupa k ukazatelyam fajlov.

File::Path
	Sozdanie/udalenie direktorij.

Getopt::Long
	Rasshirennaya obrabotka opcij.

Getopt::Std
	Standartnaya obrabotka opcij.

I18N::Collate
	Sravnenie simvolov lokalbnoj kodirovki.

IPC::Open2
	Mezhprocessornyj obmen po chteniyu i zapisi.

IPC::Open3
	Mezhprocessornyj obmen po chteniyu, zapisi, i obraboki oshibok.

Net::Ping
	Test dostupa k hostu.

POSIX
	Standartnyj interfejs po IEEE Std 1003.1

SelfLoader
	Zagruzka funkcij tol'ko po vyzovu.

Socket
	Opredelenie struktur i konstant kak i v S socket.h

Test::Harness
	Standartnyj test s statistikoj.

Text::Abbrev
	Sozdanie tablicy sokrashchenij po spisku.

Podrobnoe opisanie kazhdoj biblioteki zapisano v samom fajle.




     Programisty   vsego   mira   rabotayushchie   s   Pel  sozdali
obshchedostupnuyu  biblioteku  modulej  CPAN.  Ona  dostupna  cherez
Internet i soderzhit ogromnoe kolichestvo razlichnyh po naznacheniyu
modulej.
     K   nim   otnosyatsya  dokumentatory,  sistemnye  interfesy,
interfejsy raboty s bazami dannyh, rabota v  seti,  s  fajlami,
Internet-brouzery,  sistemy  poiska,  ogromnoe  kolichestvo  CGI
skriptov dlya  Web  serverov  i  mnogoe  mnogoe  drugoe.  Spisok
nekotoryh CPAN serverov vy mozhete najti v prilozhenii.


Last-modified: Thu, 24 Apr 1997 17:58:32 GMT
Ocenite etot tekst: