in reply to choosing modules for web site

So, the basic lineup of dependent modules I would reach for if doing this project include:

1. register users with names, addresses, phone numbers, billing info and a few other fields,

I would use DBI and DBD::Pg for a datastore (but of course there are many to choose from);

2. be able to authenticate these users,

Check out CGI::Session::Auth::DBI to manage use sessions, and privileges by role

3. provide levels of service for them,

Again CGI::Session::Auth::DBI allows for user roles and easy methods for checking privileges.

4. let them make posting through unsophisticated forms,

Now your idea for a CMS is starting to make sense. Plenty of them out there. And it likely makes more sense to extend one of those to handle this, rather than trying to write a bunch of custom code and glom a cms on top of that.

I create simple (and not so simple) forms with CGI::FormBuilder all the time. Or you might find interesting a module I recently released to cpan called: Config::Simple::CGI::FormBuilder which sub-classes it.

5. bill them recurrently using credit cards and/or PayPal

For managing PayPal interactions, try: Business::PayPal::NVP, Business::PayPal::API and Business::PayPal::IPN. You will need to spend some time in the PayPal API docs to get a sense of what you can do with these modules and how. Both those modules make fine wrappers to it.

Trust that might get you started.

if( $lal && $lol ) { $life++; }
if( $insurance->rationing() ) { $people->die(); }