File Coverage

blib/lib/Object/InsideOut/Secure.pm
Criterion Covered Total %
statement 23 23 100.0
branch n/a
condition 1 3 33.3
subroutine 7 7 100.0
pod n/a
total 31 33 93.9


line stmt bran cond sub pod time code
1             package Object::InsideOut::Secure; {
2 1     1   7 use strict;
  1         2  
  1         29  
3 1     1   6 use warnings;
  1         2  
  1         23  
4 1     1   5 use Config;
  1         2  
  1         61  
5              
6             our $VERSION = '4.05';
7             $VERSION = eval $VERSION;
8              
9 1     1   6 use Object::InsideOut 4.05 ':hash_only';
  1         20  
  1         26  
10              
11             # Holds used IDs
12             my %used :Field = ( 0 => undef );
13              
14             # Our PRNG
15             BEGIN {
16             $Math::Random::MT::Auto::shared = ($Config::Config{useithreads} &&
17 1   33 1   49 $threads::shared::threads_shared);
18             }
19 1     1   8 use Math::Random::MT::Auto 5.04 ':!auto';
  1         19  
  1         8  
20             my $prng = Math::Random::MT::Auto->new();
21              
22             # Assigns random IDs
23             sub _id :ID
24             {
25 1         2 my $id;
26 1         12 while (exists($used{$id = $prng->irand()})) {}
27 1         4 $used{$id} = undef;
28 1         5 return $id;
29 1     1   7 }
  1         2  
  1         5  
30             }
31              
32             1;
33              
34             # EOF