filename : Frames.pm
Ниже класса, если тот, который содержит / предоставляет метод для конечного пользователя.
BEGIN
{
require Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw();
our @EXPORT = qw(print_me);
}
package Frames;
sub new
{
my ($clsname,$self) = @_;
$self = {};
bless $self,$clsname;
return $self;
}
sub print_me
{
print "Testing my Frame Object Reference call";
}
1;
Filename = Testing.pm
Этот класс является тем, который содержит ссылку на объект класса кадра в паре значений ключа хеш-функции.Я пытался вызвать methof на основе этого хеш-значения.
package Test;
sub new
{
my ($clsname,$frame_ref) = @_;
my $self = { frame => $frame_ref };
# here storing frame reference as value not key
bless $self,$clsname;
return $self;
}
sub test_call
{
my ($self) = shift;
## invoking object reference based method
%{$self->{frame}}->print_me;
## Above method call is failing
}
Filename Test.pl
use Frames;
my $frobj = Frames->new;
my $testobj = Test->new($frobj);
# Frame object passed
$testobj->test_call;
Frames - это класс, который содержит / предоставляет некоторый метод. Test - это класс, который содержит объект фрейма, который я искал, чтобы вызвать этот объект фрейма.через тестовый класс.