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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π·Ρ‹ΠΊ программирования PerlΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 39

Автор ΠœΠΈΡ…Π°ΠΈΠ» Π¨ΠΎΡ…ΠΈΡ€Π΅Π²

Π‘Π»ΠΎΠΊ CHECK выполняСтся послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π erl Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ» ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. МоТно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько Π±Π»ΠΎΠΊΠΎΠ² CHECK, Ρ‚ΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² порядкС, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ ΠΈΡ… описанию. Π‘Π»ΠΎΠΊΠΈ CHECK Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ, Ссли Π erl Π·Π°ΠΏΡƒΡ‰Π΅Π½ с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ -c Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π‘Π»ΠΎΠΊ INIT выполняСтся ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π°Ρ‡Π½Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, поэтому ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. НСсколько Π±Π»ΠΎΠΊΠΎΠ² INIT Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² порядкС ΠΈΡ… описания. Поясним ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ выполнСния ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² Π½Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:


print " 8. Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ 1\n"; END { print "14. (1-ΠΉ END)\n" } INIT { print " 5. (1-ΠΉ INIT)\n" } CHECK { print " 4. (1-ΠΉ CHECK)\n" } print " 9. Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ 2\n"; BEGIN { print " 1. (1-ΠΉ BEGIN)\n" } END { print "13. (2-ΠΉ END)\n" } CHECK { print " 3. (2-ΠΉ CHECK)\n" } INIT { print " 6. (2-ΠΉ INIT)\n" } print "10. Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ 3\n"; END { print "12. (3-ΠΉ END)\n" } BEGIN { print " 2. (2-ΠΉ BEGIN)\n" } INIT { print " 7. (3-ΠΉ INIT)\n" } print "11. Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ 4\n";


Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ запуска этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ компиляции:


ΠžΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅: Волько компиляция (perl -c) 1. (1-ΠΉ BEGIN) 1. (1-ΠΉ BEGIN) 2. (2-ΠΉ BEGIN) 2. (2-ΠΉ BEGIN) 3. (2-ΠΉ CHECK) 3. (2-ΠΉ CHECK) 4. (1-ΠΉ CHECK) 4. (1-ΠΉ CHECK) 5. (1-ΠΉ INIT) 6. (2-ΠΉ INIT) 7. (3-ΠΉ INIT) 8. Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ 1 9. Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ 2 10. Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ 3 11. Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ 4 12. (3-ΠΉ END) 13. (2-ΠΉ END) 14. (1-ΠΉ END)


ИспользованиС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² позволяСт программисту Π³ΠΈΠ±ΠΊΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π½Π° всСх этапах Π΅Π΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° - ΠΎΡ‚ компиляции Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ.

Π’ поставкС Perl имССтся большоС число стандартных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π˜Ρ… описаниС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΡΡŒ ΠΊ извСстной ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅:


perldoc perlmodlib


Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ находятся Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… дистрибутива Perl ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ use. ВстроСнныС систСмныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ находятся Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ CORE, поэтому, Ссли Π² области видимости находится одноимСнная функция, Ρ‚ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΅Π΅ ΠΏΠΎ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ ΠΈΠΌΠ΅Π½ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


use Cwd 'chdir'; # ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ стандартный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ chdir '/temp'; # Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Cwd::chdir() CORE::chdir '/temp'; # Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ chdir


Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½Π° нСсколько Π³Ρ€ΡƒΠΏΠΏ. Одна ΠΈΠ· Π½ΠΈΡ… - это ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΡ€Π°Π³ΠΌ (pragmatic modules), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ компилятора ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅ΠΉ систСмы Perl. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ‚Π°ΠΊΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ привСсти constant, lib, locale, strict, utf8, warnings ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Другая Π³Ρ€ΡƒΠΏΠΏΠ° - стандартныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ (standard modules), поставляСмыС вмСстС с систСмой программирования Perl. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ стандартных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ: AutoLoader, CPAN, Cwd, Encode, Exporter, File::Find, Math::BigInt, Time::localtime, Win32 ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π³Ρ€ΡƒΠΏΠΏΠ° - это ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ (extension modules), написанныС Π½Π° языкС C ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для взаимодСйствия с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Socket, Fcntl ΠΈ POSIX.

Π’ Π»Π΅ΠΊΡ†ΠΈΠΈ 1 ΡƒΠΆΠ΅ шла Ρ€Π΅Ρ‡ΡŒ ΠΎ Comprehensive Perl Archive Network (CPAN), Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ пСрСвСсти ΠΊΠ°ΠΊ "Π’ΡΠ΅ΠΎΠ±ΡŠΠ΅ΠΌΠ»ΡŽΡ‰Π°Ρ ΡΠ΅Ρ‚ΡŒ Perl-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ", Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ сайты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ. Π‘Ρ€Π΅Π΄ΠΈ российских Π·Π΅Ρ€ΠΊΠ°Π» CPAN ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ http://cpan.sai.msu.ru/ ΠΈ ftp://ftp.chg.ru/pub/lang/perl/CPAN/. CPAN - это ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ Π°Ρ€Ρ…ΠΈΠ², Π³Π΄Π΅ хранятся дистрибутивы Perl для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, докумСнтация, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΠΎ самой Ρ€Π°Π·Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅, распространяСмыС бСсплатно. На сайтС имССтся Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ систСма поиска ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, всС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ расклассифицированы ΠΏΠΎ логичСским катСгориям ΠΈ ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ поиск схоТих ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π’ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΈ CPAN Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ насчитываСтся Π±ΠΎΠ»Π΅Π΅ 600 ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… хранятся сотни ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π‘Ρ€Π΅Π΄ΠΈ основных ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ваТнСйшиС:

[x]. интСрфСйсы ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Win32);

[x]. интСрфСйсы ΠΊ систСмам управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…;

[x]. ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы;

[x]. интСрфСйсы ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ языкам программирования;

[x]. Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ систСмами;

[x]. ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° строк ΠΈ тСкстовой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ;

[x]. интСрнационализация ΠΈ локализация;

[x]. аутСнтификация, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ криптография;

[x]. Ρ€Π°Π±ΠΎΡ‚Π° с сСтями, WWW, HTML, HTTP, CGI, e-mail;

[x]. Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ сТатиС Π΄Π°Π½Π½Ρ‹Ρ…;

[x]. Ρ€Π°Π±ΠΎΡ‚Π° с изобраТСниями, Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΠ°ΠΌΠΈ, Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ ΠΈ растровой Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ;

[x]. Ρ€Π°Π±ΠΎΡ‚Π° с ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ;

[x]. ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΏΠΎΠΈΡΠΊΠ°Ρ‚ΡŒ Π½Π° CPAN ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, подходящий для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ возникшСй Π·Π°Π΄Π°Ρ‡ΠΈ. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях "ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚ΡŒ вСлосипСд" Π½Π΅ придСтся: Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π»ΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ½ΠΎ сразу ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π»ΠΈΠ±ΠΎ Π²Π·ΡΡ‚ΡŒ Π·Π° основу своСй Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ соврСмСнных Perl-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ - ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅, ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ довольно Π»Π΅Π³ΠΊΡƒΡŽ Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΡŽ ΠΏΡƒΡ‚Π΅ΠΌ опрСдСлСния подклассов, Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΡ… возмоТности описанных Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ классов. Π”Π°ΠΆΠ΅ Ссли Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡Π΅Ρ€ΠΏΠ½ΡƒΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² сходных модулях, ΠΈΠ·ΡƒΡ‡ΠΈΠ² тСксты ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² исходных ΠΊΠΎΠ΄Π°Ρ…. CPAN являСтся Π²Ρ‹Π΄Π°ΡŽΡ‰ΠΈΠΌΡΡ собраниСм ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π½Ρ‹Ρ… цСнностСй, ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ сокровищницСй программистской мысли, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² Π²ΠΈΠ΄Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊ эксплуатации ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

Когда Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ отсутствуСт Π² вашСй систСмС, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠ· рСпозитория CPAN. Для этого Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· Π·Π΅Ρ€ΠΊΠ°Π» этого Π°Ρ€Ρ…ΠΈΠ²Π½ΠΎΠ³ΠΎ сайта ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ с Π½Π΅Π³ΠΎ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ модуля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ tar.gz.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ с ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм сСмСйства Unix, ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ нСсколькими способами. Π‘Π°ΠΌΡ‹ΠΉ простой ΠΈΠ· Π½ΠΈΡ… - Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ cpan ΠΈΠ· дистрибутива Perl. Π’ΠΎΠ³Π΄Π° для установки модуля прямо с блиТайшСго ΠΈΠ· Π·Π΅Ρ€ΠΊΠ°Π» сайта CPAN Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:


cpan -i Module::Name


ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС этой ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ вопросы, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ настроСк ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½Π° Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΈ устанавливаСт ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Π”Ρ€ΡƒΠ³ΠΎΠΉ способ - ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, особСнно Ссли ΠΎΠ½ ΡƒΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ с сайта CPAN ΠΈ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅Ρ‚ доступа Π² Internet. Для этого Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ² с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:


tar -zxvf Module-Name-1.00.tar.gz


Π—Π°Ρ‚Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π² этом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ нСсколько ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ подготовят, ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΡŽΡ‚ ΠΈ установят Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ всСгда описаны Π² Ρ„Π°ΠΉΠ»Π΅ readme, поставляСмом с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:


perl Makefile.PL make make test make install


Если всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ установки ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π±Π΅Π· ошибок, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ установлСн ΠΈ зарСгистрирован Π² вашСй систСмС.

Π’ΠΎ ΠΆΠ΅ самоС ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈ Π² срСдС Microsoft Windows. Для распаковки Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ² Π½ΡƒΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Windows-вСрсиями Π°Ρ€Ρ…ΠΈΠ²Π°Ρ‚ΠΎΡ€ΠΎΠ² tar ΠΈ gzip ΠΈΠ»ΠΈ WinRAR. Установка ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ написанных Π½Π° Perl, выполняСтся Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² Unix-систСмах, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ называСтся Π½Π΅ make, Π° nmake (Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ с сайта Microsoft). Но для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² процСссС установки ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ компиляция исходных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языкС C, Π° для этого Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² систСмС Π±Ρ‹Π» установлСн компилятор C (Ρ‡Ρ‚ΠΎ Π² Unix-систСмах являСтся Π½ΠΎΡ€ΠΌΠΎΠΉ). МоТно Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ бСсплатно распространяСмыми срСдствами Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Visual C++ Toolkit ΠΈ Platform SDK, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ² ΠΈΡ… с сайта ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft (http://msdn.microsoft.com/visualc/vctoolkit2003/). Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ - ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ свободно распространяСмый компилятор Free MinGW GCC for Windows (http://www.mingw.org/download.shtml). ПослС установки C-компилятора Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ cpan.

Π•Ρ‰Π΅ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠΎΠ΄ ОБ Windows ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ дистрибутивы ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ActiveState, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° систСму программирования ActivePerl. Π’ Π΅Π΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ppm, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ дСйствия ΠΏΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ модуля с сСрвСра ΠΈ Π΅Π³ΠΎ установкС. Установка модуля ΠΈΠ· Internet запускаСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ('::' Π² ΠΈΠΌΠ΅Π½ΠΈ модуля Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° '-'):


ppm install Module-Name


Или ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ² с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, послС Ρ‡Π΅Π³ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ установку ΠΈΠ· локального ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π±Π΅Π· ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Internet. АдрСс сСрвСра для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Perl-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ppd ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π½Π° сайтС http://aspn.activestate.com/ASPN/Perl/Modules/.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΈΠ·ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π² этой Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ программисту Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ собствСнныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°ΡΡ‚Π°Ρ‚ΡŒΡΡ Π² объСмС. А ΠΈΠ·ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со стандартными Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ модулями ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ создали, ΠΎΡ‚Π»Π°Π΄ΠΈΠ»ΠΈ ΠΈ протСстировали Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ.

ЛСкция 14. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅