in reply to "Fields" for "Objects"

Listen to Your Mother.

I thought you might be curious about the specifics of how the advice to use Moose would help in this case, though. The functionality of your code above would be replaced by:

package Whatever; use Moose; has 'main_message' => ( is => 'rw' );

Poof! Instant access to $whatever->main_message and $whatever->main_message($value).