package Action; sub new { my ($class, %args) = @_; my $coderef = sub { while (my ($k, $v) = each(%args)) { ... } }; return bless($coderef, $class); } sub foo { $_[0]->(); }