File Coverage

blib/lib/Devel/Spy/TieScalar.pm
Criterion Covered Total %
statement 26 28 92.8
branch n/a
condition n/a
subroutine 7 9 77.7
pod n/a
total 33 37 89.1


line stmt bran cond sub pod time code
1             package Devel::Spy::TieScalar;
2 1     1   5 use strict;
  1         2  
  1         52  
3 1     1   6 use warnings;
  1         2  
  1         34  
4              
5 1     1   5 use constant PAYLOAD => 0;
  1         2  
  1         68  
6 1     1   5 use constant CODE => 1;
  1         2  
  1         302  
7              
8             sub TIESCALAR {
9 1     1   800 my $class = shift @_;
10              
11 1         2 my @self;
12 1         5 @self[ PAYLOAD, CODE, ] = @_;
13              
14 1         8 return bless \@self, $class;
15             }
16              
17             sub FETCH {
18 1     1   892 my $self = shift @_;
19              
20 1         3 my $value = ${ $self->[PAYLOAD] };
  1         4  
21              
22 1         6 my $followup = $self->[CODE]->("-> $value");
23              
24 1         10 return Devel::Spy->new( $value, $followup );
25             }
26              
27             sub STORE {
28 1     1   2725 my ( $self, $value ) = @_;
29              
30 1         4 ${ $self->[PAYLOAD] } = $value;
  1         4  
31              
32 1         6 my $followup = $self->[CODE]->("= $value");
33              
34 1         11 return Devel::Spy->new( $value, $followup );
35             }
36              
37 0     0     sub UNTIE {}
38 0     0     sub DESTROY {}
39              
40             1;
41              
42             __END__