sub get_property { my( $getter, $setter ) = @_; require Class::Property::RW::Custom; my $dummy; my $wrapper = tie $dummy, 'Class::Property::RW::Custom', $getter, $setter; return sub: lvalue { $wrapper->set_object(shift); return $dummy; # <= here is error in older perls }; }