Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как бы урезать ActivePerl, оставить только socket. 
:(
    Опции темы
dya
Дата 27.6.2007, 16:32 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 27.6.2007

Репутация: 1
Всего: 1



Вопрос возник, как урезать perl до одного модуля(socket) и оставить все модули которые к нему относятся? 
Буду очень признателен, если поможете.
PM MAIL   Вверх
arto
Дата 27.6.2007, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



для чего?

perl -MSocket -le 'print join "\n",keys %INC'
PM MAIL ICQ   Вверх
amg
Дата 28.6.2007, 06:25 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Одним только модулем просто так не обойтись. Если нужно сделать мини-дистрибутив Perl, скопируй в отдельную директорию perl.exe, perl58.dll и модули, список которых выдаст команда, предложенная arto.

Только в Windows с одинарными кавычками проблема, и приходится извращаться:

perl -MSocket -le "print join \"\n\",keys %INC"
PM MAIL   Вверх
dya
Дата 28.6.2007, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 27.6.2007

Репутация: 1
Всего: 1



Спс, очень помогло. Но вопрос возникает в другом я просмотрел все модули. Но все жи выдается что-то в таком духи.
Код

B:\perl\bin>perl.exe test.pl
Can't locate DynaLoader.pm in @INC (@INC contains: B:/perl/site/lib B:/perl/lib
.) at B:/perl/lib/XSLoader.pm line 110.
Compilation failed in require at test.pl line 1.
BEGIN failed--compilation aborted at test.pl line 1.
Возможно ли его грамотно урезать ... сам модуль ...


Это сообщение отредактировал(а) dya - 28.6.2007, 15:09
PM MAIL   Вверх
amg
Дата 29.6.2007, 06:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Цитата(dya @  28.6.2007,  15:04 Найти цитируемый пост)
Возможно ли его грамотно урезать ... сам модуль ...
Стоит ли? Проще, наверное, добавить еще один модуль. (А потом еще, если по-прежнему ругань будет.)

PM MAIL   Вверх
dya
Дата 30.6.2007, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 27.6.2007

Репутация: 1
Всего: 1



Пытался, заканчивается тем что скрипт выполняется без ошибок … и без результатно.
PM MAIL   Вверх
amg
Дата 30.6.2007, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Цитата(dya @  30.6.2007,  00:19 Найти цитируемый пост)
Пытался, заканчивается тем что скрипт выполняется без ошибок … и без результатно.
Ну тогда код скрипта в студию. (Только, пожалуйста, не весь, а максимально урезанный, чтобы лишь продемонстрировать неисправность).

PM MAIL   Вверх
dya
Дата 30.6.2007, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 27.6.2007

Репутация: 1
Всего: 1



Код
use Socket;

$host="www.ya.ru";
$port="80";

socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));

$iaddr = inet_aton($host);
$paddr = sockaddr_in($port, $iaddr);

connect(SOCK, $paddr);
send (SOCK, "GET / HTTP/1.0\n\n", 0);

@data=<SOCK>;

close(SOCK);

print @data;
Вот, хотя не вижу смысла. Он прекрасно функционирует при полной установки ActivePerl.
PM MAIL   Вверх
nitr
Дата 30.6.2007, 12:48 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



добавьте в начало скрипта 
Код

#!/usr/bin/perl -w
use strict;
use Socket;

my $host="www.ya.ru";
my $port="80";

socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));

my $iaddr = inet_aton($host);
my $paddr = sockaddr_in($port, $iaddr);

connect(SOCK, $paddr);
send (SOCK, "GET / HTTP/1.0\n\n", 0);

my @data=<SOCK>;

close(SOCK);

print @data;

и в ваш "урезанный" включите этот модуль... посмотрим на что будет кричать...



--------------------
PM   Вверх
dya
Дата 30.6.2007, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 27.6.2007

Репутация: 1
Всего: 1



Использовал команду приведенную с верху получил список модулей(файлов).
Код
warnings/register.pm
Carp.pm 
Exporter.pm 
Socket.pm 
strict.pm 
warnings.pm 
XSLoader.pm 
Site/site/lib/ sitecustomize.pl 
После совета  nitr  добавил модули (файлы)
Код
DynaLoader.pm 
vars.pm 
Config.pm 
AutoLoader.pm 
Config_heavy.pl 
auto/DynaLoader/dl_findfile.al 
Получил результат
Код
Unknown error
Compilation failed in require at test.pl line 3.
BEGIN failed--compilation aborted at test.pl line 3. 


PM MAIL   Вверх
dya
Дата 1.7.2007, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 27.6.2007

Репутация: 1
Всего: 1



Решение проблемы
Код
./auto
        ./auto/DynaLoader
        ./auto/DynaLoader/autosplit.ix
        ./auto/DynaLoader/dl_expandspec.al
        ./auto/DynaLoader/dl_findfile.al
        ./auto/DynaLoader/dl_find_symbol_anywhere.al
        ./auto/IO
        ./auto/IO/IO.bs
        ./auto/IO/IO.dll
        ./auto/Socket
        ./auto/Socket/Socket.bs
        ./auto/Socket/Socket.dll
        ./Carp
        ./Carp/Heavy.pm
        ./Carp.pm
        ./Config.pm
        ./DynaLoader.pm
        ./Exporter
        ./Exporter/Heavy.pm
        ./Exporter.pm
        ./IO
        ./IO/File.pm
        ./IO/Handle.pm
        ./IO/Socket.pm
        ./IO.pm
        ./SelectSaver.pm
        ./Socket.pm
        ./strict.pm
        ./Symbol.pm
        ./warnings
        ./warnings/register.pm
        ./warnings.pm
        ./XSLoader.pm
Наткнулся http://search.cpan.org/~rgarcia/perl-5.9.3/README.ce
PM MAIL   Вверх
nitr
Дата 1.7.2007, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



dya, а разве не про это писал amg ???


--------------------
PM   Вверх
dya
Дата 1.7.2007, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 27.6.2007

Репутация: 1
Всего: 1



nitr, что предлагал amg, не полностью выводила все модули.
PM MAIL   Вверх
amg
Дата 2.7.2007, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Цитата(dya @  1.7.2007,  00:10 Найти цитируемый пост)
Решение проблемы ... http://search.cpan.org/~rgarcia/perl-5.9.3/README.ce

dya, спасибо за наводку! Мини-дистрибутив перл с нужными модулями и библиотеками в одном бинарнике - это удобно. Интересно, получится ли сделать такой бинарник не только для WinCE, но и для других систем?

Кстати, перечисленные модули достаточны как минимум для IO::Socket, для Socket столько не нужно.

Это сообщение отредактировал(а) amg - 2.7.2007, 10:56
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0616 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.