SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG

 
 

perl-Object-InsideOut rpm build for : openSUSE Tumbleweed. For other distributions click perl-Object-InsideOut.

Name : perl-Object-InsideOut
Version : 4.05 Vendor : obs://build_opensuse_org/devel:languages:perl
Release : 27.48 Date : 2024-08-05 17:41:22
Group : Development/Libraries/Perl Source RPM : perl-Object-InsideOut-4.05-27.48.src.rpm
Size : 0.39 MB
Packager : (none)
Summary : Comprehensive inside-out object support module
Description :
This module provides comprehensive support for implementing classes using
the inside-out object model.

Object::InsideOut implements inside-out objects as anonymous scalar
references that are blessed into a class with the scalar containing the ID
for the object (usually a sequence number). For Perl 5.8.3 and later, the
scalar reference is set as *read-only* to prevent _accidental_
modifications to the ID. Object data (i.e., fields) are stored within the
class\'s package in either arrays indexed by the object\'s ID, or hashes
keyed to the object\'s ID.

The virtues of the inside-out object model over the _blessed hash_ object
model have been extolled in detail elsewhere. See the informational links
under \"SEE ALSO\". Briefly, inside-out objects offer the following
advantages over _blessed hash_ objects:

* * Encapsulation

Object data is enclosed within the class\'s code and is accessible only
through the class-defined interface.

* * Field Name Collision Avoidance

Inheritance using _blessed hash_ classes can lead to conflicts if any
classes use the same name for a field (i.e., hash key). Inside-out objects
are immune to this problem because object data is stored inside each
class\'s package, and not in the object itself.

* * Compile-time Name Checking

A common error with _blessed hash_ classes is the misspelling of field
names:

$obj->{\'coment\'} = \'Say what?\'; # Should be \'comment\' not \'coment\'

As there is no compile-time checking on hash keys, such errors do not
usually manifest themselves until runtime.

With inside-out objects, _text_ hash keys are not used for accessing field
data. Field names and the data index (i.e., $$self) are checked by the Perl
compiler such that any typos are easily caught using \'perl -c\'.

$coment[$$self] = $value; # Causes a compile-time error

$comment{$$self} = $value; # Also causes a compile-time error

Object::InsideOut offers all the capabilities of other inside-out object
modules with the following additional key advantages:

* * Speed

When using arrays to store object data, Object::InsideOut objects are as
much as 40% faster than _blessed hash_ objects for fetching and setting
data, and even with hashes they are still several percent faster than
_blessed hash_ objects.

* * Threads

Object::InsideOut is thread safe, and thoroughly supports sharing objects
between threads using threads::shared.

* * Flexibility

Allows control over object ID specification, accessor naming, parameter
name matching, and much more.

* * Runtime Support

Supports classes that may be loaded at runtime (i.e., using \'eval { require
...; };\'). This makes it usable from within mod_perl, as well. Also
supports additions to class hierarchies, and dynamic creation of object
fields during runtime.

* * Exception Objects

Object::InsideOut uses Exception::Class for handling errors in an
OO-compatible manner.

* * Object Serialization

Object::InsideOut has built-in support for object dumping and reloading
that can be accomplished in either an automated fashion or through the use
of class-supplied subroutines. Serialization using Storable is also
supported.

* * Foreign Class Inheritance

Object::InsideOut allows classes to inherit from foreign (i.e.,
non-Object::InsideOut) classes, thus allowing you to sub-class other Perl
class, and access their methods from your own objects.

* * Introspection

Obtain constructor parameters and method metadata for Object::InsideOut
classes.

RPM found in directory: /packages/linux-pbone/ftp5.gwdg.de/pub/opensuse/repositories/devel:/languages:/perl:/CPAN-O/openSUSE_Tumbleweed/noarch

Content of RPM  Provides Requires

Download
ftp.icm.edu.pl  perl-Object-InsideOut-4.05-27.48.noarch.rpm
     

Provides :
perl(Bundle::Object::InsideOut)
perl(Object::InsideOut)
perl(Object::InsideOut)
perl(Object::InsideOut::Exception)
perl(Object::InsideOut::Metadata)
perl(Object::InsideOut::Results)
perl(Object::InsideOut::Secure)
perl(Object::InsideOut::Util)
perl-Object-InsideOut

Requires :
perl(:MODULE_COMPAT_5.40.0)
perl(Exception::Class) >= 1.22
perl(Scalar::Util) >= 1.5
perl(Test::More) >= 0.98
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsZstd) <= 5.4.18-1


Content of RPM :
/usr/lib/perl5/vendor_perl/5.40.0/Bundle
/usr/lib/perl5/vendor_perl/5.40.0/Bundle/Object
/usr/lib/perl5/vendor_perl/5.40.0/Bundle/Object/InsideOut.pm
/usr/lib/perl5/vendor_perl/5.40.0/Object
/usr/lib/perl5/vendor_perl/5.40.0/Object/InsideOut
/usr/lib/perl5/vendor_perl/5.40.0/Object/InsideOut.pm
/usr/lib/perl5/vendor_perl/5.40.0/Object/InsideOut.pod
/usr/lib/perl5/vendor_perl/5.40.0/Object/InsideOut/Autoload.pm
/usr/lib/perl5/vendor_perl/5.40.0/Object/InsideOut/Chained.pm
/usr/lib/perl5/vendor_perl/5.40.0/Object/InsideOut/Cumulative.pm
/usr/lib/perl5/vendor_perl/5.40.0/Object/InsideOut/Dump.pm
/usr/lib/perl5/vendor_perl/5.40.0/Object/InsideOut/Dynamic.pm
/usr/lib/perl5/vendor_perl/5.40.0/Object/InsideOut/Exception.pm
/usr/lib/perl5/vendor_perl/5.40.0/Object/InsideOut/Foreign.pm
/usr/lib/perl5/vendor_perl/5.40.0/Object/InsideOut/Metadata.pm
/usr/lib/perl5/vendor_perl/5.40.0/Object/InsideOut/Overload.pm
/usr/lib/perl5/vendor_perl/5.40.0/Object/InsideOut/Secure.pm
/usr/lib/perl5/vendor_perl/5.40.0/Object/InsideOut/Universal.pm
/usr/lib/perl5/vendor_perl/5.40.0/Object/InsideOut/Util.pm
/usr/lib/perl5/vendor_perl/5.40.0/Object/InsideOut/attributes.pm
/usr/lib/perl5/vendor_perl/5.40.0/Object/InsideOut/lvalue.pm
/usr/share/doc/packages/perl-Object-InsideOut
/usr/share/doc/packages/perl-Object-InsideOut/Changes
/usr/share/doc/packages/perl-Object-InsideOut/README
/usr/share/doc/packages/perl-Object-InsideOut/examples
/usr/share/doc/packages/perl-Object-InsideOut/examples/YAPI.pm
/usr/share/man/man3/Bundle::Object::InsideOut.3pm.gz
/usr/share/man/man3/Object::InsideOut.3pm.gz
/usr/share/man/man3/Object::InsideOut::Metadata.3pm.gz

 
ICM