Подскажите как получить указатель на метод класса и с ним работать
в perl? Ниже пример и коментарии где не работает!
#!/usr/bin/perl
use strict;
{
my $x = new test1(2423242);
$x->print();
}
package test1;
sub new
{
my ($class,$new_x) = @_;
my $self = {state => "INIT"};
$self->{test2} = new test2($new_x);
bless ($self,$class);
return $self;
}
sub print
{
my ($self)=@_;
my $temp;
my $func = $self->{test2}->{func};
&$func($temp); # Вот тут ругается!!! Как правильно делать?
print $$temp . "\n";
}
package test2;
sub new
{
my ($class,$new_x) = @_;
my $self = {state => "INIT",
xxx => $new_x};
$self->{func} = \&get_xxx; # Правильно ли???
bless ($self,$class);
return $self;
}
sub get_xxx
{
my ($self)=$_[0];
$_[1] = \$self->{xxx};
}
че-то ты фигню какую-то написал.
ты скажи что ты хочешь сделать?
почему вот такой вариант не подошел:
$module = 'module_name';
$func = 'funcname';
$module->$func;