Создание модуля
Мне кажется, очень много для популярности того или иного языка делают вовсе не его качества именно как языка, а какие-то маленькие удобные фенечки, или большие удобные фенечки. В perl главная большая удобная фенечка - это CPAN, гигантский архив готовых модулей, которые ставятся через единый интерфейс, с зависимостями, тестами, и прочим.
Очень большая удобная фенечка. Есть фенечки поменьше. Например, утилитки для генерации каркаса модуля. Открываем терминал, идем в папочку проектов (у себя назову ее ~/Desktop/test):
kilork@pantogan: ~ $ mkdir Desktop/test kilork@pantogan:~ $ cd Desktop/test kilork@pantogan:~/ Desktop / test!
Надо определиться с названием. Я обычно весьма много времени трачу на придумывание названия. Как говорил небезизвестный персонаж, как вы яхту назовете, так она и поплывет. Поэтому название надо очень тщательно выбирать. Наш модуль будет жить в пространстве имен FinancecQuote и относится к Сбербанку, назовем его Finance::Quote::Sberbank. Итак, воспользуемся командой h2xs:
kilork@pantogan:~/Desktop/test$ h2xs —АХ —n Finance::
Quote : : Sberbank
Defaulting to backwards compatibility with perl 5.8.8 If you intend this module to be compatible with earlier perl versions, pi ease specify a minimum perl version with the —b option .
Writing Finance—Quote—Sberbank /lib / Finance /Quote/Sberbank .pm
Writing Finance— Quote—Sberbank/Makefile .PL Writing Finance-Quote-Sberbank/README
Writing Finance-Quote-Sberbank/1/Finance-Quote—Sberbank, t Writing Finance-Quote-Sberbank/Changes Writing Finance-Quote-Sberbank/MANIFEST
Как видно, одна маленькая команда насоздавала нам множество файли- ков. Один, очевидно, сам каркас модуля. Затем идет генератор Макейіе’ов. Файлик с README, файлик тестов. Лог изменений Changes. И MANIFEST. Чудеса, да и только, почти вся работа сделана за нас этой маленькой чудесной командой.
Главное - не давать никому знать об этом.Сгенерируем Makefile. Укажем дополнительный параметр, говорящий о нашем желании ставить модули в локальную директорию пользователя.
kilork@pantogan: ~ / Desktop / test/Finance-Quote-SberbankS perl Makefile .PL PREFIX ~ perl Checking if your kit is complete . . .
Looks good
Writing Makefile for Finance :: Quote :: Sberbank
Отлично, теперь мы можем собирать, тестировать, инсталлировать, и собирать дистрибутив простыми командами. Собираем:
kiIorkQpantogan:~/Desktop/test/Finaneе-Quote- Sberbank$ make # собираем cp lib/Finance/
Quote/Sberbank.pm blib/lib/Finance/Quote/ Sberbank.pm Manifying blib/man3/Finance:: Quote :: Sberbank .3pm
Тестируем:
kilork@pantogan:~/Desktop / test/Finance—Quote—SberbankS make test # тестируем
PERL_DL_NONLAZY= I /usr/bin/perl "—MExtUtils :: Command : :MM\' e" "test_harness (0 , ’blib/lib’, ’ blib/arch ’) " t/*.t t/Finance—Quote—Sberbank ... . ok All tests successful . Files = I, Tests = I, 0 wallclock secs ( 0.08 cusr + 0.01 csys = 0.09 CPU)
Инсталлируем:
kilork@pantogan: ~ / Desktop/ test / Finance—Quote—SberbankS make install # инсталлируем Installing /home/kilork/ perl/share/perl / 5.8.8 /Finance/ Quote/Sberbank .pm Installing /home/kilork/perl/man/ man3/Finance :: Quote :: Sberbank .3pm Writing /home/kilork /perl/lib/perl/5.8.8 / auto/Finance / Quote/Sberbank /. packlist Appending installation info to /home/kilork/ perl/lib/perl / 5.8.8 / perllocal . pod
Собираем дистрибутив:
kilorк@pantogan: \'/Desktop / test /Finance-Quote-SberbankS make dist ф собираем дистрибутив rm -rf Finance-Quote-Sberbank-0.01 /usr/bin/perl "- MExtUtils :: Manifest=manicopy , maniread" \\ —e "
manicopy(maniread () , ’ Finance—Quote—Sberbank—0.01 ’, ’ best ’)
mkdir Finance—Quote—Sberbank—0.01 mkdir Finance—Quote— Sberbank—0.01/lib mkdir Finance—Quote—Sberbank—0.01/ lib /Finance
mkdir Finance-Quote-Sberbank -0.01/ lib /Finance/Quote mkdir Finance-Quote-Sberbank -0.01/1 Generating META, yml
tar cvf Finance—Quote—Sberbank—0.01.tar Finance—Quote— Sberbank —0.01 Finance—Quote—Sberbank —0.01 / Finance-Quote-Sberbank -0.01 /MANIFEST
Finance-Quote-Sberbank -0.01/ lib / Finance-Quote-Sberbank -0.01/lib/ Finance/ Finance-Quote-Sberbank - 0.01/ lib / Finance/Quote/ Finance—Quote—Sberbank —0.01/ lib /Finance /Quote/Sberbank .pm Finance—Quote—Sberbank —0.01 /t/ Finance—Quote—Sberbank —0.01/1 /Finance—Quote—Sberbank .
t Finance-Quote-Sberbank -0.01/ChangesFinance-Quote-Sberbank — 0.01/README Finance-Quote-Sberbank — 0.01/Makefile .PL Finance— Quote—Sberbank —0.01 /МЕГА, yml rm —rf Finance—Quote—Sberbank—0.01 gzip —best Finance—Quote—Sberbank—0.01.tar
Команд немного, все очень просто, на текущем этапе нам понадобятся команды make и make test. Затем make install, если надо будет использовать модуль из GnuCash или других программ, и наконец - make dist, если нам ВДРУГ захочется все это дело выложить на CPAN (мне захотелось, можно поискать Sberbank на http://search.cpan.org).
Каркас модуля мы создали, подготовили среду к сборке и тестированию, приступаем к реализации модуля для FinanceuQuote.
4.2
Еще по теме Создание модуля:
- Модуль создания профайлов экономического региона
- Модуль создания инвестиционного профайла и модельных портфелей
- Создание федерального государственного аппарата в США (создание первых департаментов, Закон о судоустройстве 1789 г.)
- Модуль работы с профайлами экономического региона
- Модуль 2. Описание продукта
- Реализация модуля для FinancecQuote
- Модуль работы с инвестиционными профайлами
- Модуль данных по индексам и модельным классам
- Модуль 7. Риски
- Модуль 6. Организационный план
- Глава 4 Finance::Quote - разработка собственных модулей получения котировок
- Модуль 4. Маркетинг
- Модуль 8. Финансовый план
- Глава 5 Finance::Quote - придание модулю Sberbank полезных функций
- Модуль 1
- Модуль 2
- Модуль 3