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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перенаправление с модуля на другой 
:(
    Опции темы
vadiml
Дата 18.11.2007, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



У меня в 1 модуле есть 2 пакета Size и SizeF (для int и float чисел соответственно)

подключаю я этот модуль как
use Size;

но надо чтоб этот модуль подключался и как
use SizeF;

если сделать симлинк, то оно так и работает, по проблема в том, что надо чтоб это потом и на винде работало, где симлинков нет. Копию файла с таким же названием делать не желательно. А вот изнутри вызвать другой что-то не получилось (пробовал 
use base и our @ISA=(Size) )


PM MAIL Jabber   Вверх
Vaneska
Дата 26.11.2007, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 15.3.2005
Где: Москва

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



По хорошему надо бы разделить пакета по разным файлам.

А вообще разъясняю ситуацию.
В файле Size.pm два пакета по Вашему получается.

Когда пишем
Код

use Size;

в текущей программе будут доступны одновременно подпрограммы пакетов Size и SizeF
такими способами:
Код

&Size::some_sub1();
&SizeF::some_sub2();

# или, если в пакетах был сделан импорт подпрограмм
some_sub1();
some_sub2();

поэтому совершенно не нужно добавлять use SizeF
В операторе use первый параметр обозначает либо имя пакета, которое преобразуется в последующем в путь к файлу, или сам файл с путем к нему
например
Код

use Math::Size; # = use "Math/Size.pm"
use "Math/Size.pm";

--------------------
http://isokolov.blogspot.com/
PM MAIL ICQ   Вверх
vadiml
Дата 26.11.2007, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Мне надо чтоб пакет SizeF был доступен как по вызову use Size, так и по вызову use SizeF, т.е. мне нужна полная аналогия вызова С модуля, интерфейс к которому у меня в Size прописан:
есть Size.h & Size.cpp с описанием и телом модуля
есть SizeF.h с  *одной* строкой: #include <Size.h>
имитацию этого я и хочу получить.

PM MAIL Jabber   Вверх
Vaneska
Дата 26.11.2007, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 15.3.2005
Где: Москва

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



тогда вот так можно:

Код

# файл Size.pm
package Size;

require Exporter;
our @ISA = ("Exporter");
our @EXPORT = qw(
        some_sub
);

sub some_sub
{
        print "some_sub\n";
}

package SizeF;

require Exporter;
our @ISA = ("Exporter");
our @EXPORT = qw(
        some_sub2
);

sub some_sub2
{
        print "some_sub2\n";
}

1;

# Файл SizeF.pm
use Size;
1;

#Файл test.pl
use SizeF.pm

some_sub();






Это сообщение отредактировал(а) Vaneska - 26.11.2007, 16:02
--------------------
http://isokolov.blogspot.com/
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


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

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


 




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


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

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