Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² PerlΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 15

Автор Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Маслов

Π’ ΠŸΠ΅Ρ€Π» Π½Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ синтаксиса для классов. Но Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌΠΈ классами ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. ΠŸΡ€ΠΈ этом ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ модуля становятся ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ массива @ISA ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ наслСдования Π² классах. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ классы описаны ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.


Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΎΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΏΡ€ΠΈ этом Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π΅ указывая ΠΈΠΌΠ΅Π½ΠΈ модуля, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

package имя_модуля; # Π’Π°ΠΊΠΎΠ΅ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ имя этого Ρ„Π°ΠΉΠ»Π° Π±Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ '.pm'

require Exporter; # ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ строка для экспорта ΠΈΠΌΠ΅Π½

@ISA = qw(Exporter); # -//-

@EXPORT = qw(func1 func2) # ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΠ΅ΠΌ ΠΈΠΌΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ! Π½Π΅Ρ‚ запятой!

@EXPORT_OK = qw( $пСрСмСнная @массив ); # Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, массивы ΠΈ Ρ‚.Π΄. Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ

{ # Начало Π±Π»ΠΎΠΊΠ° модуля

.....

sub func1

........

sub func2

........

1;

}

Π”Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ ".pm" Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ ΠŸΠ΅Ρ€Π». Они пСрСчислСны Π² массивС @INC ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ "/usr/local/lib/perl/".

Π’ Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅:

use имя_модуля;

ΠΈ Π²Π°ΠΌ становятся доступны ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π΄Π°Π½Π½ΠΎΠ³ΠΎ модуля.


Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠŸΠ΅Ρ€Π» Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ поставляСтся с дистрибутивом ΠŸΠ΅Ρ€Π» ΠΎΠ½ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½Π° pragma Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠ°ΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ компилятору) ΠΈ стандартныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.


Pragma Π±ΠΈΠ±Π»ΠΈΠΎΡ‚ΠΎΡ‚Π΅ΠΊΠΈ.

Π”Π°Π½Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ:

use имя;

ΠΊΠΎΠ³Π΄Π° хотят Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ дСйствиС ΠΈ

no имя;

ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ.

Π’ стандартный Π½Π°Π±ΠΎΡ€ входят ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ pragma:

diagnostics –  Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ диагностики.

integer –  Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½ΡƒΡŽ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΡƒ.

less –  Π Π΅ΠΆΠΈΠΌ минимальной Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ компилятора.

overload - Π Π΅ΠΆΠΈΠΌ пСрСопрСдСлСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².

sigtrap - Π Π΅ΠΆΠΈΠΌ слСТСния Π·Π° прСрываниями.

strict - Π Π΅ΠΆΠΈΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ использования «опасных» ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².

subs - Π Π΅ΠΆΠΈΠΌ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ дСкларирования ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.


Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

AnyDBM_File  Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ….

AutoLoader  Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя Π²Ρ‹Π·ΠΎΠ²Π°.

AutoSplit  Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

Benchmark  ΠΠ½Π°Π»ΠΈΠ· скорости исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Carp  ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ….

Config  Π”оступ ΠΊ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠŸΠ΅Ρ€Π».

Cwd  ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ имя Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

DB_File  Π Π°Π±ΠΎΡ‚Π° с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Berkley DB.

Devel::SelfStubber  Π Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

DynaLoader  Π”инамичСская Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ C.

English Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° встроСнных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Env Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния

Exporter  ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ экспорт/ΠΈΠΌΠΏΠΎΡ€Ρ‚ для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

ExtUtils::LibList ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

ExtUtils::MakeMaker Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Makefile

ExtUtils::Manifest ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для создания ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ„Π°ΠΉΠ»Π° MANIFEST

ExtUtils::Mkbootstrap ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ для DynaLoader.

Fcntl  ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΠΈ Π² Π‘ Fcntl.h

File::Basename Π‘интаксичСский Ρ€Π°Π·Π±ΠΎΡ€ спСцификации Ρ„Π°ΠΉΠ»Π°.

File::CheckTree Π‘ыстрый ΠΏΡ€ΠΎΡ…ΠΎΠ΄ ΠΏΠΎ дирСкториям диска.

File::Find Π‘ыстрый поиск Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎ дирСкториям.

FileHandle ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ доступа ΠΊ указатСлям Ρ„Π°ΠΉΠ»ΠΎΠ².

File::Path Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅/ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ.

Getopt::Long Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΠΏΡ†ΠΈΠΉ.

Getopt::Std Π‘тандартная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΠΏΡ†ΠΈΠΉ.

I18N::Collate Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ символов локальной ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ.

IPC::Open2 ΠœΠ΅ΠΆΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½Ρ‹ΠΉ ΠΎΠ±ΠΌΠ΅Π½ ΠΏΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ ΠΈ записи.

IPC::Open3 ΠœΠ΅ΠΆΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½Ρ‹ΠΉ ΠΎΠ±ΠΌΠ΅Π½ ΠΏΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ, записи, ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΠΊΠΈ ошибок.

Net::Ping Π’Сст доступа ΠΊ хосту.

POSIX  Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ интСрфСйс ΠΏΠΎ IEEE Std 1003.1

SelfLoader Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Π²Ρ‹Π·ΠΎΠ²Ρƒ.

Socket  ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ структур ΠΈ констант ΠΊΠ°ΠΊ ΠΈ Π² Π‘ socket.h

Test::Harness  Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ тСст с статистикой.

Text::Abbrev Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ сокращСний ΠΏΠΎ списку.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ записано Π² самом Ρ„Π°ΠΉΠ»Π΅.


CPAN

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡΡ‚Ρ‹ Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΡ€Π° Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Ρ ΠŸΠ΅Ρ€Π» ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΎΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ CPAN. ΠžΠ½Π° Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Π° Ρ‡Π΅Ρ€Π΅Π· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈ содСрТит ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

К Π½ΠΈΠΌ ΠΎΡ‚носятся Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹, ΡΠΈΡΡ‚Π΅ΠΌΠ½Ρ‹Π΅ ΠΈΠ½Ρ‚СрфСсы, интСрфСйсы Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π°Π±ΠΎΡ‚Π° Π² ΡΠ΅Ρ‚ΠΈ, Ρ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Π±Ρ€ΠΎΡƒΠ·Π΅Ρ€Ρ‹, ΡΠΈΡΡ‚Π΅ΠΌΡ‹ ΠΏΠΎΠΈΡΠΊΠ°, ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ CGI скриптов для Web ΡΠ΅Ρ€Π²Π΅Ρ€ΠΎΠ² ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π‘писок Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… CPAN сСрвСров Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Π€ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹

Π’ ΠŸΠ΅Ρ€Π» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ создания Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ². Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° format Π²Ρ‹ ΠΎΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎΠ»Π΅ΠΉ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° листС Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ тСкстовой Ρ„ΠΎΡ€ΠΌΠ΅. Π—Π°Ρ‚Π΅ΠΌ выполняСтС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ write(Ρ„Π°ΠΉΠ») ΠΊΠΎΡ‚орая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ».

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:

format имя =

FORMLIST

.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ описаниС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈΠ΄Π΅Ρ‚ послС строки format ΠΈ заканчиваСтся символом '.' Π² Π½Π°Ρ‡Π°Π»Π΅ строки.

Π—Π΄Π΅ΡΡŒ 'имя' – это имя Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ имя указатСля Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

Если 'имя' отсутсвуСт Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ – STDOUT.

FORMLIST – это строки Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. Они Π±Ρ‹Π²Π°ΡŽΡ‚ Ρ‚Ρ€Π΅Ρ… Ρ‚ΠΈΠΏΠΎΠ²:

1. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ. Π‘Ρ‚Ρ€ΠΎΠΊΠ° начинаСтся символом '#'.

2. ΠžΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ»Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ… (picture).

3. Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… описатСлСм.

ΠžΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ – это строка которая выводится Π² Π²ΠΈΠ΄Π΅ Β«ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒΒ» Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΏΠΎΠ»Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. КаТдоС ΠΏΠΎΠ»Π΅ начинаСтся Π»ΠΈΠ±ΠΎ символом '@' Π»ΠΈΠ±ΠΎ '^'.

Π’ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ строкС указываСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΠΈΠ΄ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Для этого ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² которая слСдуСт всСгда послС описатСля ΠΈ содСрТит ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ†Π΅Π»Ρ‹Π΅ выраТСния Π² порядкС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ описатСлСм.

Π Π°Π·ΠΌΠ΅Ρ€ ΠΈ Π²ΠΈΠ΄ поля Π² описатСлС обозначаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ символами: 

Β«>>>>Β» β€“ Π²Ρ‹Ρ€ΠΎΠ²Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ.

Β«<<<<Β» β€“ -//– ΠΏΠΎ Π»Π΅Π²ΠΎΠΌΡƒ.

Β«||||Β» β€“ -//– ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ.

Β«####.###Β» β€“ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ числа с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ.

Β«@*Β» β€“ многострочная строка. Π”Π°Π½Π½Ρ‹Π΅ выводятся Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ.

Π Π°Π·ΠΌΠ΅Ρ€ поля Ρ€Π°Π²Π΅Π½ количСству ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… символов.

Π‘ΠΈΠΌΠ²ΠΎΠ» '^' Π² Π½Π°Ρ‡Π°Π»Π΅ поля ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π’Π°ΠΊ:

Β«^####Β» – пусто Ссли пСрСмСнная Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°.

для строчного скаляра:

Β«^<<<<<Β» – Выводится сколько Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ символов, Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ мСняСтся Π½Π° остаток Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… строках ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ свои поля.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

#!/usr/local/bin/perl

#

# ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΏΡ€ΠΈΠ³Π»Π°ΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±ΠΈΠ»Π΅Ρ‚Π°

#

$ΠΊΠΎΠΌΡƒ = Β«Π§Π°ΠΏΠ°Π΅Π²Ρƒ Π’Π°ΡΠΈΠ»ΠΈΡŽ Π˜Π²Π°Π½ΠΎΠ²ΠΈΡ‡ΡƒΒ»;

$ΠΎΡ‚_ΠΊΠΎΠ³ΠΎ = «Компания МММ»;

$адрСс = «Москва, ΡƒΠ». ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²ΠΊΠ°, Π΄ 38Β»;

$тСкст = "Π£Π²Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Василий Π˜Π²Π°Π½ΠΎΠ²ΠΈΡ‡! Компания МММ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‡Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ³Π»Π°ΡΠΈΡ‚ΡŒ

Вас ΠΈ Π’Π°ΡˆΠΈΡ… Π±Π»ΠΈΠ·ΠΊΠΈΡ… Π½Π° ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π½Π°ΡˆΠΈΡ… Π½ΠΎΠ²Ρ‹Ρ… Ρ…Ρ€ΠΎΠΌΠΎΠ²Ρ‹Ρ… сапог, сдСланных

Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠΈΡ€ΠΎΠ²Ρ‹Ρ… стандартов качСства ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π°.";

format STDOUT =

П Π  И Π“ Π› А Π‘ И Π’ Π• Π› Π¬ Н Π« Π™ Π‘ И Π› Π• Π’

ΠšΠΎΠΌΡƒ: @<<<<<<<<<<<<<<<<<<<<<<<<<< | ^|||||||||||||||||||||||||||||||

$ΠΊΠΎΠΌΡƒ, $тСкст

| ^|||||||||||||||||||||||||||||||

$тСкст

ΠžΡ‚ ΠΊΠΎΠ³ΠΎ: @<<<<<<<<<<<<<<<<<<<<<<< | ^|||||||||||||||||||||||||||||||

$ΠΎΡ‚_ΠΊΠΎΠ³ΠΎ, $тСкст

| ^|||||||||||||||||||||||||||||||

$тСкст

АдрСс:@<<<<<<<<<<<<<<<<<<<<<<<<<< | ^|||||||||||||||||||||||||||||||

$адрСс, $тСкст

| ^|||||||||||||||||||||||||||||||

$тСкст

| ^|||||||||||||||||||||||||||||||

$тСкст

| ^|||||||||||||||||||||||||||||||

$тСкст

ΠžΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΎ Π² Ρ‚ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ИВУ 38

.

write(); # Π’Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ….

exit 0; # ΠšΠΎΠ½Π΅Ρ† ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹


Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:


П Π  И Π“ Π› А Π‘ И Π’ Π• Π› Π¬ Н Π« Π™ Π‘ И Π› Π• Π’

ΠšΠΎΠΌΡƒ: Π§Π°ΠΏΠ°Π΅Π²Ρƒ Π’Π°ΡΠΈΠ»ΠΈΡŽ Π˜Π²Π°Π½ΠΎΠ²ΠΈΡ‡Ρƒ | Π£Π²Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Василий Π˜Π²Π°Π½ΠΎΠ²ΠΈΡ‡!

| ΠšΠΎΠΌΠΏΠ°Π½ΠΈΡ МММ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‡Π΅ΡΡ‚ΡŒ

ΠžΡ‚ ΠΊΠΎΠ³ΠΎ: Компания МММ | ΠΏΡ€ΠΈΠ³Π»Π°ΡΠΈΡ‚ΡŒ Вас ΠΈ Π’Π°ΡˆΠΈΡ… Π±Π»ΠΈΠ·ΠΊΠΈΡ…

| Π½Π° ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π½Π°ΡˆΠΈΡ… Π½ΠΎΠ²Ρ‹Ρ…

АдрСс:Москва, ΡƒΠ». ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²ΠΊΠ°, Π΄ 38 | Ρ…Ρ€ΠΎΠΌΠΎΠ²Ρ‹Ρ… сапог, сдСланных Π½Π°

| ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠΈΡ€ΠΎΠ²Ρ‹Ρ… стандартов