Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Без каких файлов не зупустить пёрл?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Минимальных набор для Хеллоу Ворлда =)
Быколай
Отправлено: 07 Мая, 2010 - 13:39:26
Post Id



Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Март 2009  


Помог: 0 раз(а)




Добрый день!
Возникла задача оставить от перла только-то что нужно скрипту - сам интерпретатор и вызываемые пакеты, посмотрел в /lib/, /site/lib/ и ужаснулся, >50 Мб для скрипта в 50 строк.
Есть ли какой-то программный способ прочитать список файлов которые интерпретатор дёргает всегда и без спроса, "жизненно-необходимых"?
А то удалять методом тыка не красиво как-то. Растерялся
 
 Top
JustUserR Модератор
Отправлено: 07 Мая, 2010 - 15:39:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Быколай пишет:
Добрый день!
Возникла задача оставить от перла только-то что нужно скрипту - сам интерпретатор и вызываемые пакеты, посмотрел в /lib/, /site/lib/ и ужаснулся, >50 Мб для скрипта в 50 строк.
Есть ли какой-то программный способ прочитать список файлов которые интерпретатор дёргает всегда и без спроса, "жизненно-необходимых"?
А то удалять методом тыка не красиво как-то
На самом деле для запуска Perl под windows нужен только сам интерпретатор и набор dll-файлов к нему вроде perl58.dll - а без всего остального Perl вполне запуститься
Дело в том что все средства ввода/вывода встроены в ядро Perl и не требуют никаких модулей и пакетов - а следовательная простая Perl-программа также может работать без каких-либо внешних пакетов Причем на самом деле программа может быть и не очень простая - ведь в ядро включены и регулярные выражений и функции обработки структур данных и много другое
То есть вы можете оставитель только perl.exe и perl58.dll и интерпретатор будет работать - но вы должны быть готовы к тому что если вы решите вручную добавить какой-то модуль - то он наверняка ссылается на какой-то из других модулей и вы получите ошибку Также следует помнить что прагмы языка Perl это также модули
Также если вам нужен специальный компакнтный интерпретатор Perl то можете воспользоваться MiniPerl-дистрибутивом


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Быколай
Отправлено: 07 Мая, 2010 - 16:04:18
Post Id



Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Март 2009  


Помог: 0 раз(а)




Спасибо за обстоятельный и развёрнутый ответ!
JustUserR пишет:
На самом деле для запуска Perl под windows нужен только сам интерпретатор и набор dll-файлов к нему вроде perl58.dll

Действительно так и есть!
Похоже единственный способ узнать все подключения - ковырять каждый пакет. А есть в perl способ подавления ошибок, чтобы компиляция не прерывалась на первом отсутствующем модуле? Можно конечно придумать утилиту которая бы рекурсивно просматривала все включаемые пакеты и прагмы на предмет дальнейших включений, но... надо подумать, а может что-то подобное на CPAN есть?
Попробую добавлять пакеты по мере написания программы, отслеживая ошибки...
 
 Top
JustUserR Модератор
Отправлено: 09 Мая, 2010 - 15:46:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Быколай пишет:
Спасибо за обстоятельный и развёрнутый ответ!
Действительно так и есть!
Пожалуйста! Помимо прочего если вам нужен компактный Perl-скрипт без внешних зависимостей то можете скомпилировать его в исполняемый файл например с помощью Perl2exe - в таком случае для запуска внешние библиотеки не понядобятся и их наличие нужно будет только при компиляции
Быколай пишет:
А есть в perl способ подавления ошибок, чтобы компиляция не прерывалась на первом отсутствующем модуле?
Блок eval {} с фигурными скобками (Обратите внимание что код внутри него без кавычек) подавляет абсолютно любые ошибки кроме конечно синтаксических То есть с помощью данного блока можно продолжить исполнение Perl-скрипта даже при отсутствующем модуле - но скорее всего он не будет работать поскольку библиотеки увидятся отсутствие зависимостей и просто откажутся от инициализации - ошибка будет сохранена в переменной $@
Можете также использовать блок AUTOLOAD для предпроверки наличия модулей - и выполнения каких-то операций при их отсутсвии


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы по Perl/Python/.NET »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB