Maintainability generally. Comprehension improves when information is in chunks that map onto an abstract model of what the process is doing. Its much easier to understand a program where dataflow only happens by argument passing and where subroutines are as minimalistic as is reasonably possible. Even when your script is pretty well unreusable its a lot easier to extend and maintain if you can ignore large chunks of the code because they are in subroutines clearly named as not being relevent to the issue at hand.

For instance lets say we have a program that scans a bunch of files and generates some stats. We could put the whole process into a single sub or not even use one, but it would be a lot easier to understand if we could just look at main and see what it does:

sub main { my @files=get_files(...); my $stats=scan_files(\@files); print_stats($stats); return 0; } exit(main());

---
$world=~s/war/peace/g


In reply to Re: Subroutines versus straight top to bottom scripts by demerphq
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.