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   202 use v5.12.5;
  14         48  
8 14     14   73 use warnings;
  14         30  
  14         430  
9              
10 14     14   3081 use Rex::Shared::Var::Common qw/__lock __store __retrieve/;
  14         48  
  14         3577  
11              
12             our $VERSION = '1.14.2.3'; # TRIAL VERSION
13              
14             sub TIESCALAR {
15 55     55   151 my $self = { varname => $_[1], };
16 55         178 bless $self, $_[0];
17             }
18              
19             sub STORE {
20 85     85   1614 my $self = shift;
21 85         282 my $value = shift;
22              
23             return __lock sub {
24 85     85   256 my $ref = __retrieve;
25 85         6659 my $ret = $ref->{ $self->{varname} } = $value;
26 85         341 __store $ref;
27              
28 85         117865 return $ret;
29 85         587 };
30             }
31              
32             sub FETCH {
33 103     103   19842 my $self = shift;
34              
35             return __lock sub {
36 103     103   323 my $ref = __retrieve;
37 103         11262 return $ref->{ $self->{varname} };
38 103         959 };
39             }
40              
41             1;