Автор Тема: Вызов функции  (Прочитано 2644 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн cr4ck3r

  • Фанат Perl
  • Постоялец
  • ***
  • Сообщений: 146
  • +0/-0
  • 2
    • Просмотр профиля
    • http://perlmonks.org.ru
Вызов функции
« : 21 Июня 2005, 13:05:25 »
У меня есть скрипт script.pl, который использует модуль Module.pm.
В скрипте определяется переменная $type, а модуль содержит несколько функций вида:

sub query_one { }; sub query_two { };

Я из скрипта пытаюсь вызвать функции модуля так:
my $type=\'one\';

my $query=Module::query_$type();

на что мне выдается сообщение о том что функции query_ нет в пакете Module. Что я тут пропустил подскажите? Знаю что где-то встречал такие вопросы - но не нашел где.
Ворота в perl - perlmonks.org.ru

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Вызов функции
« Ответ #1 : 21 Июня 2005, 14:27:26 »
{
  my $func = "Module::query_${type}";

  no strict \'refs\';

  $query = &{$func}();
#  $query = $func->();
}


perldoc perlref
0 OK, 0:1

Оффлайн cr4ck3r

  • Фанат Perl
  • Постоялец
  • ***
  • Сообщений: 146
  • +0/-0
  • 2
    • Просмотр профиля
    • http://perlmonks.org.ru
Вызов функции
« Ответ #2 : 21 Июня 2005, 15:23:21 »
ondr спасибо.
А тогда чтоб еще одну тему не плодить, подскажите как решить еще одну задачку.
Есть пустой хэш %DATA, и есть два массива @KEYS и @VALUES, с названиями ключей и их значениями соответственно. Как мне внести в хэш эти массивы, чтобы значения ключей указывали на соответствующие значения в массиве @VALUES. Массивы не большие по 6-8 элементов.
Спасибо.

P.S
Бессоная ночь дает сбои в голове...
Ворота в perl - perlmonks.org.ru

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Вызов функции
« Ответ #3 : 21 Июня 2005, 15:30:36 »
пожалуйста
@DATA{ @KEYS } = @VALUES
0 OK, 0:1

Оффлайн cr4ck3r

  • Фанат Perl
  • Постоялец
  • ***
  • Сообщений: 146
  • +0/-0
  • 2
    • Просмотр профиля
    • http://perlmonks.org.ru
Вызов функции
« Ответ #4 : 21 Июня 2005, 16:42:49 »
ondr
спасибо большое... Пойду спать :)
Ворота в perl - perlmonks.org.ru

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28