code structured in subroutines is usually much easier to understand, maintain and test:

On a top to botton script high level and low level ideas get "mixed" and even if it is commented, you have to read it fully to understand what it does.

Discovering which data is input and output for a particular step can also be a hard task because variables can be referenced in any place. On the other hand, when using subroutines, seen what is input and output in every step is trivial, you only have to look at the glue code between the subroutine calls.

Other problem that sometimes appear, is naming temporary vars, specially because we always try to use common names like $len, $i, $j. You have to take care to use different ones on every step or to ensure that you can reuse them without trouble or to open new scopes. When using subroutines this problem just go away.


In reply to Re: Subroutines versus straight top to bottom scripts by salva
in thread Subroutines versus straight top to bottom scripts by ghenry

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • 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:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.