Tie::ToObject - Tie to an existing object.


Tie-ToObject documentation Contained in the Tie-ToObject distribution.

Index


Code Index:

NAME

Top

Tie::ToObject - Tie to an existing object.

SYNOPSIS

Top

	use Tie::ToObject;

	my $stolen = tied(%something);

	tie %something_else, 'Tie::ToObject', $stolen;

DESCRIPTION

Top

While tie in perldoc allows tying to an arbitrary object, the class in question must support this in it's implementation of TIEHASH, TIEARRAY or whatever.

This class provides a very tie constructor that simply returns the object it was given as it's first argument.

This way side effects of calling $object->TIEHASH are avoided.

This is used in Data::Visitor in order to tie a variable to an already existing object. This is also useful for cloning, when you want to clone the internal state object instead of going through the tie interface for that variable.

VERSION CONTROL

Top

This module is maintained using Darcs. You can get the latest version from http://nothingmuch.woobling.org/code, and use darcs send to commit changes.

AUTHOR

Top

Yuval Kogman <nothingmuch@woobling.org>

COPYRIGHT

Top


Tie-ToObject documentation Contained in the Tie-ToObject distribution.

#!/usr/bin/perl

package Tie::ToObject;

use strict;
#use warnings;

use vars qw($VERSION $AUTOLOAD);

use Carp qw(croak);
use Scalar::Util qw(blessed);

$VERSION = "0.03";

sub AUTOLOAD {
	my ( $self, $tied ) = @_;
	my ( $method ) = ( $AUTOLOAD =~ /([^:]+)$/ );

	if ( $method =~ /^TIE/ ) {
		if ( blessed($tied) ) {
			return $tied;
		} else {
			croak "You must supply an object as the argument to tie()";
		}
	} else {
		croak "Unsupported method for $method, this module is only for tying to existing objects";
	}
}

__PACKAGE__

__END__