The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Class::Proxy - an object proxy


   use Class::Proxy;

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



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:


When a method is called.


When a victim was assigned.


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.


None by default.


Murat Ünalan, murat.uenalan@gmx.dee


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