DrSax has asked for the wisdom of the Perl Monks concerning the following question:
I know that i have the code for this somewhere, but I seem to have forgotten how to do this.
I have a constructor for one class, and I want to pass the reference to another subroutine to it. Let's say that I have a Collection, and I want to create it with a specified Sorter.
my $collection = Collection->new({ 'sorter' => Sort::mysorter });
Collection->new() has the following:
sub new { my ($self, $options) = @_; . . . $self->{sorter} = /&{$options->{sorter}}; }
Now, $self->{sorter} is a CODEREF.
Then, when you want to invoke the subroutine you do:
$self->{sorter}($mystuffToSort);
I get an "undefined subroutine" error whenever the subroutine lives outside the calling class. Can you help a forgetful old man?
DrSax
|
|---|