I don't know what you don't like about using BEGIN, perhaps you could elaborate. As for moving %msg to the top of the file, I specifically avoided that route because there are several problems with it. First, it can be hard to maintain. One little pass through moving things around to try to clean up your code and suddenly you've got a call to the sub before the data is initialized again.

Second, I consider it a bad habit since when you get into more advanced coding, it isn't sufficient. For example, if this becomes a module:

package My::Module; # Keep this next line at the very top, please: %msgs= (400=>"Bad Request",...); [...] use My::OtherModule; [...] sub msg { die "HTTP/1.0 $_[0] $msgs{$_[0]}\n"; }
Then all we need is:
package My::OtherModule; [...] sub import { msg(400) if ! $valid; [....] }
and we run back into the same problem.

In reply to RE: (jcwren) Re: calling a sub from an if statement by tye
in thread calling a sub from an if statement by cburns

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.