Из pl в exe: компилируем perl
пост написан и отправлен в печать 2008-10-18 примерно в 09:22
В жизни существуют много извращений, некоторые, как например чрезмерное увлечение политикой, свидомия, телефетиш достаточно вредны для больного, другие же наоборот - полезны. Именно о такой девиации хотелось бы и рассказать. На linux десктоп-программирование на perl очень популярно в среде разработчиков, для этого существуют бекэнды как для gtk2, так и для qt. Есть даже дистрибутивы, написанные полностью на этом языке. Обусловлена такая популярность несколькими причинами: во-первых, практически на каждой linux машине установлен интерпретатор с набором необходимых pm-ов, ну а во-вторых, в программу на интерпретируемом языке намного легче вносить какие-то изменения без перекомпиляции в бинарник для запуска. Для Windows-а подобные изыски непостижимы, именно поэтому на perl для этой ОС GUI-программ я не встречал. А ведь сделать их по настоящему элементарно.Захотелось мне написать информатор баланса локальной сети, к которой я подключен. И так получилось, что на моем компьютере под управлением Windows XP отсутствовал MVC, зато был установлен ActiveState Perl и их же Perl Development Kit. После беглого просмотра документации PDK обнаружились приложения PerlApp и PerlTray, которые умеют собирать .pl файл в подобие самораспаковывающегося архива, который содержит скрипт, сам интерпретатор perl + необходимые для работы библиотеки, что позволяет создавать полностью standalone приложения. Исходники можно посмотреть вот тут, сразу скажу - это мой первый сексуальный опыт программирования на perl для окон, поэтому попрошу не пинать. Как все получилось можно посмотреть на скриншотах (1,2) либо же скачать готовое приложение архивом, где в config.ini прописать свой login и password.Вывод: это все совершенно не нужно. Размер exe файла из исходника в 3 KB разрастается в 2,7 MB, который в свою очередь отъедает ~17 MB оперативной памяти. На разных версиях Windows-а все работает очень по разному, но работает же. Так что пусть наверное заводы рабочим останутся, а земли - этим самым крестьянам, такая вот аллегория. Хотя если верить отзывам пользователей, то им главное результат и это в очередной раз доказывает всю сложность мировой организации.UPD: переписал на Delphi. Исходники и бинарники качабельны по запросу. Добавился графический конфигуратор, автоуведомление о заканчивающимся балансе и расширенная статистика. И работает это все теперь экономнее и быстрее, хотя с https компонентом пришлось достаточно долго повозиться, пока не нашел TIEHTTP, которые использует IEшный Wininet и умеет работать с self-signed сертификатами.