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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Какая разница между use и require ? 
:(
    Опции темы
aleksnn
Дата 5.5.2005, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Если делаю так
use mymodul;

&mysub;

sub mysub {
require mymodul2
}

mymodul2 будет грузится при каждом вызове mysub или один раз.
PM MAIL   Вверх
Chuck
Дата 5.5.2005, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Сушня
**


Профиль
Группа: Эксперт
Сообщений: 442
Регистрация: 12.12.2003
Где: Узбекистан, Ташке нт

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



Код

use mymodul;
require "mymodul2.pl";
&mysub;

sub mysub {
&имя_функции_которую_надо_вызвать_из_mymodul2
}

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


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



Цитата

mymodul2 будет грузится при каждом вызове mysub или один раз.

Да, при каждом вызове. Если нужно загрузить только один раз, то подключи файл заранее. Если юзаешь use strict, то перед подключением не забудь вызвать no strict, так как Perl будет не доволен. smile Хотя лучше, написать модуль или класс и подгружать его с помощью use имя_пакета, require удобна при подключении конфигурационных файлов.

Это сообщение отредактировал(а) korob2001 - 5.5.2005, 19:07


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
aleksnn
Дата 5.5.2005, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Мой вопрос назрел потому, что в модулях из CPAN встречаются такие конструкции. Так что если я поставлю use, то require будет игнорирован? Мой ответ да! smile
Но лишний раз спросить не вредно. smile
PM MAIL   Вверх
korob2001
Дата 6.5.2005, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



Нет, не будет. Просто use выполняется на стадии компиляции, а require на стадии выполнения, т.е.
Код

use Module;

еквивалентно:
Код

BEGIN { require 'Module.pm' };

Точнее сказать, почти эквивалентно.

Это сообщение отредактировал(а) korob2001 - 6.5.2005, 01:13


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
aleksnn
Дата 6.5.2005, 03:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Так вот пример:
Код

use LWP::UserAgent;
#use HTTP::Request::Common; #Здесь будет + require?


При вызове
Код

$ua->get ($url);

Грузит
Код

require HTTP::Request::Common;   #так в исходниках

Вот и вопрос : Если
Код

until ($i>10){$ua->get ($url);$i++};

Десять раз будет грузить? smile
PM MAIL   Вверх
korob2001
Дата 6.5.2005, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



Да, если файл подключается внутри метода $au->get(), если же подключение глобально, то только один раз, при подключении модуля.


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


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

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


 




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


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

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