in reply to Perl Module ending without 1;

A module file must end return with a true value. And adding the 1; at the end is the easiest way to accomplish this.

If you don't do it, you have to hope, that your module code will always end with return a true return value... (Please don't hope... and please don't think, "my module will always do this...")

update: s/end/return/; sorry, used the wrong word for this... Thanks JavaFan

Replies are listed 'Best First'.
Re^2: Perl Module ending without 1;
by JavaFan (Canon) on Jul 18, 2009 at 19:36 UTC
    A module file must end with a true value.
    No, a module must return a true value. Many people don't realize that when a module is loaded with use, its code is actually run. Of course, if the module just contains subs, little code is run; but most modules assign a version number, set @ISA or @EXPORT/@EXPORT_OK. All these assignments wouldn't happen if the code in the module wasn't run.