in reply to Re: coderef to an object method
in thread coderef to an object method
In order to use a coderef as a method, you need to manually pass the object as the first arg.
Not necessarily.
#!/usr/bin/perl use strict; use warnings; use Test::More tests => 2; package Foo; sub new { bless {}, $_[0] } sub report { return [ @_ ] } package main; my $foo = Foo->new(); my $report = \&Foo::report; my $moreport = $foo->can( 'report' ); is_deeply( $foo->$report( 'abc' ), [ $foo, 'abc' ], 'coderef should work as method on object' ); is_deeply( $foo->$moreport( 'def' ), [ $foo, 'def' ], '... even if returned from can()' );
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: coderef to an object method
by Anonymous Monk on Aug 31, 2018 at 17:57 UTC |