... package main; use Interpolation; my $foo = new Foo; my $CALL = {}; tie %$CALL, 'Interpolation::general', sub { my $obj = shift(); my $cmd = shift(); no strict 'refs'; $obj->$cmd(@_); }, '$$@->$'; print "x $CALL->{$foo}->{bar}\n"; print "x $CALL->{$foo}->{bar}{1}\n"; print "x $CALL->{$foo}->{bar}{1,2}\n";