Программирование > Perl
ref()
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:
но во всяком случае это будет замыкание, вы точно уверены что вам нужны будет все эти проблемы?
Навигация
Перейти к полной версии