On Fri, Dec 15, 2000 at 11:23:23PM -0800, Ian Hickson wrote:
> Having said that: The only feature that I really miss from Perl 5 is the
> lack of method pointers -- that is, references to functions in a package
> with an associated object.
Oh, that's easy. Use a closure...
my $foo = Foo->new;
my $meth_ref = sub { $foo->method };
&$methodref();
In fact, here's an example implementation...
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.
--
Michael G. Schwern <[EMAIL PROTECTED]> http://www.pobox.com/~schwern/