Ultimately the way to do this is to make a library for the start and finish pieces, and make
subroutines for them.
package MyAppCommon;
use strict;
sub CommonPageStart {
...
}
sub CommonPageEnd {
...
}
1;
__END__
# and then, in your scripts
use MyAppCommon; # use is basically like require... see the docs for
+details
MyAppCommon::CommonPageStart(...);
# your stuff
MyAppCommon::CommonPageEnd(...);
This is the "right" way to do it for lots of reasons... not the least of which is that this is the way that most things work, and you will have an easier way of integrating other people's work with yours, as well as having your work be more easily understandable to someone else (if you hire help or if you are asking for help on perlmonks :-D).
As for more direct reasons of why this is better:
- It makes your code more easily maintainable and extensible because your code is organized into packages, and it is namespaced (so you can easily add it to another application without worry of namespace collision, and likewise, other modules can be added to it easily without worry of namespace collision)
- It is more time-efficient. If you "do" a file, it is read off of disk and parsed with each invocation. However, when a file is "use"d or "require"d (same mechanism, mostly) it is only read off of disk and parsed/compiled once. Further references to it are just referring back to the first copy made. In a mod_perl process, for instance, this can lead to enormous speed improvements.
- For much the same reasons, it is more space-efficient. Since the file is only compiled once, the subroutines and data structures and data internal to the perl interpretter (for, say, storing the internal representation of the parsed and compiled code) are only stored once. Again, under mod_perl, this affect can be multiplied even more if your modules are pre-loaded in the parent process (before forking), as each server-process reuses the same copy (more or less) of the compiled code of the modules.
- etc
------------
:Wq
Not an editor command: Wq
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.