I like the idea of using one block, it's much cleaner. Thank you.

Whether you need to use a BEGIN around initializations in your main package really depends on how you write your code. If your initialization occurs in your script before you call any of the subs that rely on it, no BEGIN is needed. If you aren't initializing anything, no BEGIN is needed.

When you require or use a module, the code it contains is executed. So, any initializations will occur when the code is required, no matter where they are in the module. If the module is calls its own routines while being required, then the same possibility for problems with uninitialized block scoped variables exists.

# subs first - BEGIN not needed { my $var = 'blah'; sub foo { ... } sub bar { ... } } sub bax { ... } do_stuff_here();
# subs last - BEGIN needed iff initializing values. do_stuff_here(); # $var has been created but not initialized. { my $var = 'blah'; sub foo { ... } sub bar { ... } } sub bax { ... }

When you say the BEGIN is probably not needed, I interpret your statement to mean that the BEGIN may not be necessary because the OP probably will not have to initialize his block scoped variables.

If my understanding is incorrect, is there some other mechanism that you suggest for initializing the variables?


TGI says moo


In reply to Re^6: goto &sub and local question by TGI
in thread goto &sub and local question by rovf

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.