File Coverage

lib/Rex/Shared/Var/Scalar.pm
Criterion Covered Total %
statement 21 21 100.0
branch n/a
condition n/a
subroutine 8 8 100.0
pod n/a
total 29 29 100.0


line stmt bran cond sub pod time code
1             #
2             # (c) Jan Gehring
3             #
4              
5             package Rex::Shared::Var::Scalar;
6              
7 14     14   185 use v5.12.5;
  14         46  
8 14     14   88 use warnings;
  14         36  
  14         423  
9              
10 14     14   3055 use Rex::Shared::Var::Common qw/__lock __store __retrieve/;
  14         38  
  14         3636  
11              
12             our $VERSION = '1.14.2.2'; # TRIAL VERSION
13              
14             sub TIESCALAR {
15 55     55   172 my $self = { varname => $_[1], };
16 55         165 bless $self, $_[0];
17             }
18              
19             sub STORE {
20 85     85   1943 my $self = shift;
21 85         259 my $value = shift;
22              
23             return __lock sub {
24 85     85   318 my $ref = __retrieve;
25 85         6258 my $ret = $ref->{ $self->{varname} } = $value;
26 85         333 __store $ref;
27              
28 85         57813 return $ret;
29 85         628 };
30             }
31              
32             sub FETCH {
33 103     103   24006 my $self = shift;
34              
35             return __lock sub {
36 103     103   302 my $ref = __retrieve;
37 103         11726 return $ref->{ $self->{varname} };
38 103         961 };
39             }
40              
41             1;