NAME
    Class::Tie::InsideOut - Inside-out objects on the cheap using tied
    hashes

REQUIREMENTS
    Perl 5.6.1, and Scalar::Util.

INSTALLATION
    Installation can be done using the traditional Makefile.PL or the newer
    Build.PL methods.

    Using Makefile.PL:

      perl Makefile.PL
      make test
      make install

    (On Windows platforms you should use "nmake" instead.)

    Using Build.PL (if you have Module::Build installed):

      perl Build.PL
      perl Build test
      perl Build install

SYNOPSIS
      package MyClass;

      use Class::Tie::InsideOut;

      our @ISA = qw( Class::Tie::InsideOut );

      our %GoodKey;

      sub bad_method {
        my $self = shift;
        return $self->{BadKey}; # this won't work
      }

      sub good_method {
        my $self = shift;
        return $self->{GoodKey}; # %GoodKey is defined
      }

DESCRIPTION
    This module is a proof-of-concept on of implementing inside-out objects
    using tied hashes. It makes use of the Tie::InsideOut package to tie
    hash keys to hashes in the calling package's namespace.

    Fields are accessed as hash keys, so in traditional Perl objects can be
    easily converted into inside-out objects.

    More information can be found in the module documentation.

REVISION HISTORY
    A brief list of changes since the previous release:

    0.05 Sat Feb 18 2006
            - additional documentation
            - added Storable freeze, thaw and dclone tests
            - added TODO file
            - FIRSTKEY properly resets the each iterator
            - added SCALAR method
            - Tie::InsideOut is a Tie::Hash module
            - properly detects namespace for calls from within evals
            - added Storable hooks for serialization
            - improved handling of references to main namespace
            - removed UNTIE method
            - uses refaddr function for id rather than a counter
            - requires Scalar::Util
            - added keywords and resources to Build.PL for META.yml

    Incompatible changes are marked with a '*'. For a detailed history see
    the Changes file included in this distribution.

SEE ALSO
    This module is a wrapper for Tie::InsideOut.

    There are various other inside-out object packages on CPAN. Among them:

      Class::InsideOut
      Object::InsideOut

AUTHOR
    Robert Rothenberg <rrwo at cpan.org>

  Suggestions and Bug Reporting
    Feedback is always welcome. Please use the CPAN Request Tracker at
    http://rt.cpan.org to submit bug reports.

LICENSE
    Copyright (c) 2006 Robert Rothenberg. All rights reserved. This program
    is free software; you can redistribute it and/or modify it under the
    same terms as Perl itself.

