The other monks have given you some good strategies for turning your programs into subs easily. I particularly like the modulino approach that Corion gave.
If you do turn these separate programs into subs, I think it's important also to think about how this changes the functionality.
- As subs, you don't have to worry about the arguments you pass. As programs, if you have shell metacharacters in those arguments, you have to escape them somehow.
- As programs, errors don't affect the main program much. As subs, you might want to wrap in eval if you want to keep going after a sub dies.
- Programs can leak memory without affecting the main program. If your sub leaks memory, the program leaks.
- Getting data back from a program is a somewhat different (and more involved) process than getting data back from a sub—depending on what you're passing, of course.
If what you have now works, fine. I'd be worried about the future. This way of doing subroutines is probably going to lead to grief at some point (probably because of how you pass data in and out), and I wouldn't want to perpetuate it any longer than necessary. That is, don't write new code this way. As I work on old code that does this, I'd probably migrate it away, but I wouldn't go out of my way to fix what's not (yet) broken.
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.