in reply to Whether to use local()

My question is whether you should be concerned with scope if $new_mail needs to be shared between sub update_mail_list and sub read_mail_list etc.

I would be concerned, but I'd balance that concern against the size and complexity of the module, and whether there's a likelihood that the module would be extended or subclassed.

In your example, a global variable with package scope that is shared between two methods throws a major wrench into attempts to subclass either of the methods. Whether to use local depends on how the variable is shared.