Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re: Perl Module ending without 1;

by toolic (Bishop)
on Jul 18, 2009 at 17:42 UTC ( #781362=note: print w/ replies, xml ) Need Help??

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 package MyFoo; use strict; use warnings; sub bar {print "bar\n"} #1; C:\Perl>type use warnings; use strict; use MyFoo; print "hello\n"; MyFoo::bar(); C:\Perl>perl did not return a true value at line 3. BEGIN failed--compilation aborted at line 3.

Since it is simple enough to do, and it is a well-known convention, it is a good practice to add '1;'.

Comment on Re: Perl Module ending without 1;
Download Code

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://781362]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (12)
As of 2015-11-25 21:43 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (691 votes), past polls