Программирование > Perl

ref()

(1/2) > >>

ctax:
Здравствуйте господа.
У меня есть маленький вопрос:
есть функция вида $ref->fun(),
как мне получить ссылку на нее и
тип ссылки должен быть CODE.

В таком виде получаю SCALAR :(((
#!/usr/bin/perl
use strict;
my $ref=[];
bless $ref,\'TEST\';

print ref(\\$ref->fun());

package TEST;

sub fun
    {
        return 1;
    }

Заранее большое мерси!

arto:
\\&TEST::fun ?

ctax:
Так конечно да, но в случае, когда имя класса не известно, например в  функции, которая должна возвратить CODE - ссылку на функцию begin()  любого модуля.

sub get_code_ref
{
my $blessed_ref = shift;
return \\$blessed_ref->begin(); # все так же возвращает SCALAR...
}

Надеюсь не запутал.

И еще мысль по-ходу, мне кажется можно сделать так
my $code_ref = sub{$ref->begin()}; # работает
но мне кажется это извращение
что думаете? :)

arto:
посмотреть в сторону perldoc Alias

arto:
но во всяком случае это будет замыкание, вы точно уверены что вам нужны будет все эти проблемы?

Навигация

[0] Главная страница сообщений

[#] Следующая страница

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 
Перейти к полной версии