Find access violations to blessed objects
27.43 KB
built 2026-10-16 18:45:44 GMT
Description
Encapsulation is the practice of creating subroutines to access the properties
of a class instead of accessing those properties directly. The advantage of
good encapsulation is that the author is permitted to change the internal
implementation of a class without breaking its usage.
Object-oriented programming in Perl is most commonly implemented via blessed
hashes. This practice makes it easy for users of a class to violate
encapsulation by simply accessing the hash values directly. Although less
common, the same applies to classes implemented via blessed arrays, scalars,
filehandles, etc.
This module is a hack to block those direct accesses. If you try to access a
hash value of an object from its own class, or a superclass or subclass, all
goes well. If you try to access a hash value from any other package, an
exception is thrown. The same applies to the scalar value of a blessed scalar,
entry in a blessed array, etc.
To be clear: this class is NOT intended for strict enforcement of
encapsulation. If you want bullet-proof encapsulation, use inside-out objects
or the like. Instead, this module is intended to be a development or debugging
aid in catching places where direct access is used against classes implemented
as blessed hashes.
To repeat: the encapsulation enforced here is a hack and is easily
circumvented. Please use this module for good (finding bugs), not evil (making
life harder for downstream developers).
Dependencies
19 totalRequires18
- coreutils
- findutils
- make
- perl(Carp)
- perl(English)
- perl(ExtUtils::MakeMaker)
- perl(Pod::Coverage) >= 0.17
- perl(Test::More)
- perl(Test::Pod) >= 1.14
- perl(Test::Pod::Coverage) >= 1.04
- perl(base)
- perl(overload)
- perl(strict)
- perl(warnings)
- perl-generators
- perl-interpreter
- rpmlib(CompressedFileNames) <= 3.0.4-1
- rpmlib(FileDigests) <= 4.6.0-1
Provides1
- perl-Devel-EnforceEncapsulation = 0.51-35.fc45
ObsoletesNo Obsoletes
ConflictsNo Conflicts
RecommendsNo Recommends
SuggestsNo Suggests
SupplementsNo Supplements
EnhancesNo Enhances
Files
2Name ![]() |
Size |
|---|---|
| Devel-EnforceEncapsulation-0.51.tar.gz | 6.63 KB |
| perl-Devel-EnforceEncapsulation.spec | 8.82 KB |
Files 1–2 of 2
Component of
buildroots that installed this RPMNo Buildroots
