The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Class::Proxy - an object proxy

SYNOPSIS

   use Class::Proxy;

        my $pobj = Class::Proxy->new( victim => $obj );

        $pobj->victim_method();

DESCRIPTION

Objects can be served by Class::Proxy. In practice, any method call to the proxy will be forwarded to the original object (victim). The purpose of that is to alter method calls in a generic way. This can be used for

  • faking

  • restriction

  • logging

  • benchmarking

  • forwarding

  • versioning

  • caching

and many more.

Altering calls

Class::Proxy is a Class::Listener (Class::Listener). Two signals are registered to it:

method

When a method is called.

victim

When a victim was assigned.

HIDING

The Class::Proxy constructor returns a Class::Proxy object and not a victim object. That means it isn't very good hiding itsef and this may cause conflicts. But when the victim class was written following oo-recommendations Class::Proxy should work fine.

[Note] In future Class::Proxy will try to obscure himself (via tie?). Currently ref() or isa() call would reveal Class::Proxy. Also caller() would give hints.

EXPORT

None by default.

AUTHOR

Murat Ünalan, murat.uenalan@gmx.dee

SEE ALSO

Class::Listener, Class::NiceApi and Class::Protected

1 POD Error

The following errors were encountered while parsing the POD:

Around line 169:

Non-ASCII character seen before =encoding in 'Ünalan,'. Assuming CP1252