use Test::More tests => 3;
use Data::Bind;
sub foo {
my ($bar);
Data::Bind->arg_bind(\@_);
return "bar is $bar";
}
my $x = bless { id => 9, name => 'fnord' }, 'Xyz';
is("x is $x", 'x is 9: fnord');
Data::Bind->sub_signature
(\&foo, { var => '$bar', is_rw => 1});
is(foo([\$x]), 'bar is 9: fnord');
Data::Bind->sub_signature
(\&foo, { var => '$bar'} );
is(foo([\$x]), 'bar is 9: fnord');
package Xyz;
use overload '""' => \&as_string, fallback => 1;
use Scalar::Util 'reftype';
sub as_string {
my $self = shift;
"$self->{id}: $self->{name}";
}