X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FVariable-Temp.git;a=blobdiff_plain;f=t%2F15-lvalue-sub.t;fp=t%2F15-lvalue-sub.t;h=baae5e4a895b8d16b6208af063def28b8c745a1f;hp=0000000000000000000000000000000000000000;hb=73d40783bd6b96e04e453f3cba0e8ada8ed06528;hpb=d69521b1f9cf9817ad62ff3f765a8e907c2d1fce diff --git a/t/15-lvalue-sub.t b/t/15-lvalue-sub.t new file mode 100644 index 0000000..baae5e4 --- /dev/null +++ b/t/15-lvalue-sub.t @@ -0,0 +1,61 @@ +#!perl + +use strict; +use warnings; + +use Variable::Temp 'temp'; + +use Test::More tests => 10; + +{ + package Variable::Temp::TestPkg; + + sub new { + my ($class, $val) = @_; + + bless { value => $val }, $class; + } + + sub value :lvalue { + $_[0]->{value} + } + + sub is_value { + my ($self, $expected, $desc) = @_; + ::is($self->{value}, $expected, $desc); + } +} + +my $x = Variable::Temp::TestPkg->new(1); +$x->is_value(1); + +{ + temp $x->value = 2; + $x->is_value(2); +} + +$x->is_value(1); + +{ + temp $x->value = 3; + $x->is_value(3); + + temp $x->value = 4; + $x->is_value(4); +} + +$x->is_value(1); + +{ + temp $x->value = 5; + $x->is_value(5); + + { + temp $x->value = 6; + $x->is_value(6); + } + + $x->is_value(5); +} + +$x->is_value(1);