my $collection = Collection->new({ 'sorter' => Sort::mysorter }); $collection->doit; package Collection; sub new { my ($class, $options) = @_; $self->{sorter} = \&{$options->{sorter}}; bless {}, $class; } sub doit { print "iam doit\n"; $self->{sorter}->($mystuffToSort); } package Sort; sub mysorter { print "iam mysorter\n"; }