/usr/share/perl5/Set/Scalar/Universe.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 | package Set::Scalar::Universe;
use strict;
local $^W = 1;
use vars qw(@ISA);
@ISA = qw(Set::Scalar::Virtual Set::Scalar::Base);
use Set::Scalar::Base qw(_make_elements);
use Set::Scalar::Virtual;
use Set::Scalar::Null;
use overload
'neg' => \&_complement_overload;
my $UNIVERSE = __PACKAGE__->new;
sub SET_FORMAT { "[%s]" }
sub universe {
my $self = shift;
return $UNIVERSE;
}
sub null {
my $self = shift;
return $self->{'null'};
}
sub enter {
my $self = shift;
$UNIVERSE = $self;
}
sub _new_hook {
my $self = shift;
my $elements = shift;
$self->{'universe'} = $UNIVERSE;
$self->{'null' } = Set::Scalar::Null->new( $self );
$self->_extend( { _make_elements( @$elements ) } );
}
sub _complement_overload {
my $self = shift;
return Set::Scalar::Null->new( $self );
}
=pod
=head1 NAME
Set::Scalar::Universe - universes for set members
=head1 SYNOPSIS
B<Do not use directly.>
=head1 DESCRIPTION
There are only two guaranteed interfaces, both sort of indirect.
The first one is accessing the universe of a set:
$set->universe
This contains the members of the universe
$set->universe->members
of the C<$set>.
The second supported interface is displaying set universes.
print $set->universe, "\n";
This will display the members of the set inside square brackets: [],
as opposed to sets, which have their members shown inside
parentheses: ().
=head1 AUTHOR
Jarkko Hietaniemi <jhi@iki.fi>
=cut
1;
|