File Coverage

blib/lib/Set/Scalar/Virtual.pm
Criterion Covered Total %
statement 29 29 100.0
branch 1 2 50.0
condition 6 9 66.6
subroutine 10 10 100.0
pod 0 5 0.0
total 46 55 83.6


line stmt bran cond sub pod time code
1             package Set::Scalar::Virtual;
2              
3 22     22   117 use strict;
  22         37  
  22         990  
4             local $^W = 1;
5              
6 22     22   260 use vars qw($VERSION @ISA);
  22         93  
  22         1528  
7              
8             $VERSION = '1.29';
9             @ISA = qw(Set::Scalar::Base);
10              
11 22     22   115 use Set::Scalar::Base qw(_make_elements as_string _compare _strval);
  22         39  
  22         2179  
12              
13             use overload
14 22         243 '""' => \&as_string,
15             'eq' => \&are_equal,
16 22     22   118 '==' => \&are_equal;
  22         38  
17              
18 16     16 0 115 sub ELEMENT_SEPARATOR { " " }
19              
20             sub _extend {
21 12694     12694   21916 my $self = shift;
22 12694         15255 my $elements = shift;
23              
24 12694         33632 $self->_insert_elements( $elements );
25             }
26              
27             sub extend {
28 1     1 0 9 my $self = shift;
29              
30 1         5 $self->_extend( { _make_elements( @_ ) } );
31             }
32              
33             sub compare {
34 8996     8996 0 12093 my $a = shift;
35 8996         11325 my $b = shift;
36              
37 8996 50 66     117604 if (ref $a && ref $b && $a->isa(__PACKAGE__) && $b->isa(__PACKAGE__)) {
      66        
      66        
38 8976         23446 $a = _strval($a);
39 8976         23515 $b = _strval($b);
40             }
41              
42 8996         24631 return _compare($a, $b);
43             }
44              
45             sub are_equal {
46 8996     8996 0 104667 my $a = shift;
47 8996         11166 my $b = shift;
48              
49 8996         17917 return $a->compare($b) eq 'equal';
50             }
51              
52             sub clone {
53 364     364 0 540 my $self = shift;
54              
55 364         1889 return $self;
56             }
57              
58             =pod
59              
60             =head1 NAME
61              
62             Set::Scalar::Virtual - internal class for Set::Scalar
63              
64             =head1 SYNOPSIS
65              
66             B.
67              
68             =head1 DESCRIPTION
69              
70             B
71             See the L.
72              
73             =head1 AUTHOR
74              
75             Jarkko Hietaniemi
76              
77             =cut
78              
79             1;