in reply to Mail/Template.pm, what is true value?

Packages need to return true. If they don't it implies that some precondition for loading the package failed.

In most cases that just means putting 1; at the end of the package:

package Mail::Template; use strict; use base qw(Template::Base); use Config; use Mail::Sendmail qw(sendmail); use Template::Base; use Template::Config; ... # all the rest of the package 1; # The essential 'true'

Some packages check their context in a BEGIN block and fail to load if it is not correct. That is fairly unusual, not least because the failure message is not wonderfully user friendly, as you have discovered.


DWIM is Perl's answer to Gödel