Michael G Schwern wrote: > package Class::MethRef; > use strict; > > sub meth_ref { > my($proto, $method, @args) = @_; > return sub { $proto->$method(@args) }; > } > > > So this... > > my $meth_ref = $obj->meth_ref('foo', @some_stuff); > $meth_ref->(); > > is equivalent to this.. > > $obj->foo(@some_stuff); > > You could even make the meth_ref take additional (or overriding) arguments. > > Its a good idea, I'll put Class::MethRef on CPAN soon. > Something to be careful of--it's easy to create a circular reference when using method pointers. As a result, neither the referrer nor referee objects are ever destroyed. When using method references it's important that your class keeps track of its references, and explicitly removes them when done to allow object destruction to occur. Perhaps this could be incorporated into Class::MethRef?Thread Previous | Thread Next