/usr/share/perl5/Set/Scalar/Real.pm is in libset-scalar-perl 1.25-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | package Set::Scalar::Real;
use strict;
local $^W = 1;
use vars qw(@ISA);
@ISA = qw(Set::Scalar::Base);
use Set::Scalar::Base qw(_make_elements _binary_underload);
use overload
'+=' => \&_insert_overload,
'-=' => \&_delete_overload,
'/=' => \&_invert_overload;
sub insert {
my $self = shift;
$self->_insert( { _make_elements @_ } );
return $self;
}
sub _insert_overload {
my ($this, $that) = _binary_underload( \@_ );
$that = (ref $this)->new($that) unless ref $that;
$this->insert( $that->elements );
return $this;
}
sub _delete {
my $self = shift;
my $elements = shift;
delete @{ $self->{'elements'} }{ keys %$elements };
$self->_invalidate_cached;
return $self;
}
sub delete {
my $self = shift;
$self->_delete( { _make_elements @_ } );
}
sub _delete_overload {
my ($this, $that) = _binary_underload( \@_ );
$this->delete( $that->elements );
return $this;
}
sub _invert {
my $self = shift;
my $elements = shift;
foreach my $element ( keys %$elements ) {
if ( exists $self->{'elements'}->{ $element } ) {
delete $self->{'elements'}->{ $element };
} else {
$self->{'elements'}->{ $element } = $elements->{ $element };
}
}
$self->_invalidate_cached;
}
sub invert {
my $self = shift;
$self->_invert( { _make_elements @_ } );
return $self;
}
sub _invert_overload {
my ($this, $that) = _binary_underload( \@_ );
$this->invert( $that->elements );
return $this;
}
sub clear {
my $self = shift;
die __PACKAGE__ . "::clear(): need no arguments.\n" if @_;
$self->delete( $self->elements );
return $self;
}
sub fill {
my $self = shift;
die __PACKAGE__ . "::fill(): need no arguments.\n" if @_;
$self->insert( $self->universe->elements );
return $self;
}
sub DESTROY {
my $self = shift;
delete $self->{'null' };
delete $self->{'universe'};
$self->clear;
}
=pod
=head1 NAME
Set::Scalar::Real - internal class for Set::Scalar
=head1 SYNOPSIS
B<Internal use only>.
=head1 DESCRIPTION
B<This is not the module you are looking for.>
If you want documentation see L<Set::Scalar>.
=head1 AUTHOR
Jarkko Hietaniemi <jhi@iki.fi>
=cut
1;
|