in reply to
Perl Module ending without 1;
What happens if I write a Perl module which does not end with 1;?
You could get an error.
To satisfy my curiosity, I created a contrived example to prove that an error would result with use. Since I had never experienced this in practice, it is probably difficult to achieve, but it is possible. Here is a legal (but probably unlikely) scenario. Notice that I have commented out the '1;' at the end of the package. If you uncomment it, there will be no error:
C:\Perl>type MyFoo.pm
package MyFoo;
use strict;
use warnings;
sub bar {print "bar\n"}
#1;
C:\Perl>type foo.pl
use warnings;
use strict;
use MyFoo;
print "hello\n";
MyFoo::bar();
C:\Perl>perl foo.pl
MyFoo.pm did not return a true value at foo.pl line 3.
BEGIN failed--compilation aborted at foo.pl line 3.
Since it is simple enough to do, and it is a well-known convention, it is a good practice to add '1;'.