package TestMethods; use strict; use warnings; sub import { my ( $class, @methods ) = @_; my $target = caller; foreach my $method (@methods) { my $fq_method = $target . "::$method"; no strict 'refs'; *$fq_method = sub { local *__ANON__ = "__ANON__$fq_method"; my $self = shift; return $self->{$method} unless @_; $self->{$method} = shift; return $self; }; } } 1;