1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
#!/usr/bin/perl
use v5.18;
use warnings;
use Test2::V0;
use Object::Pad 0.800;
class AClass {
field $data :param;
my $priv = method {
"data<$data>";
};
method m { return $self->$priv }
}
{
my $obj = AClass->new( data => "value" );
is( $obj->m, "data<value>", 'method can invoke captured method ref' );
}
class BClass {
field $data :param;
method $priv {
"data<$data>";
}
method m {
return $self->$priv
}
}
{
my $obj = BClass->new( data => "second" );
is( $obj->m, "data<second>", 'method can invoke private lexical method' );
}
done_testing;
|