URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6580
[ Назад ]

Исходное сообщение
"Запуск через ссылки"

Отправлено Al , 03-Июл-07 18:11 
Есть некоторый фрагмент кода
#!/usr/bin/perl -w
use strict;


my $param="function_mail";


sub function_mail
{

}

Вопрос в том как можно запустить функцию не используя eval и не отключая use strict, зная только значение $param? То есть нельзя напрямую делать function_mail для вызова, а надо как то действовать через $param


Содержание

Сообщения в этом обсуждении
"Запуск через ссылки"
Отправлено adews , 03-Июл-07 19:04 
&{$param} не подойдёт?
А почему eval не нравится?

"Запуск через ссылки"
Отправлено Al , 04-Июл-07 09:40 
>&{$param} не подойдёт?
Потому что это символическая ссылка и use strict будет ругаться
>А почему eval не нравится?
Условие именно в том что нужно сделать без eval, можно вопрос переформулировать так, как запустить ту функцию при помощи жёсткой ссылки



"Запуск через ссылки"
Отправлено Al , 04-Июл-07 10:19 
Ответ на свой же вопрос только что нашёл. Спасибо за помощь

"Запуск через ссылки"
Отправлено chertyaka , 11-Июл-07 15:20 
>Ответ на свой же вопрос только что нашёл. Спасибо за помощь

можно было огласить )


"Запуск через ссылки"
Отправлено A , 04-Июл-07 10:21 
>Есть некоторый фрагмент кода
>#!/usr/bin/perl -w
>use strict;
>
>
>my $param="function_mail";
>
>
>sub function_mail
>{
>
>}
>
>Вопрос в том как можно запустить функцию не используя eval и не
>отключая use strict, зная только значение $param? То есть нельзя напрямую
>делать function_mail для вызова, а надо как то действовать через $param
>

а хранить в парам нормальную ссылку нельзя?
my $param=\&function_mail;
и вызывать
$param->(аргументы)

или так
%param={'function_mail' => \&function_mail}
вызов
$param{'function_mail'}->(аргументы)