What is the normal way to declare variables in a library file that are used by pieces of code in other scripts via 'require'?
Sharing variables with external code by making them global is considered a bad idea. There are many reasons for this, mainly relating to accidental bugs called side effects, for instance where the same name has been used in two unrelated places.

The alternative is to make all your subroutines self contained. They receive all the data they need via parameters using @_, and pass information back by returning it either as a single scalar value or as a list. perldoc perlsub goes into this in detail.

Also, strongly in favour on this site, and in the Perl community in general is a pragma called use strict; which forces declaration of all variables. If you genuinely have global variables (or if you haven't time to fix the code), there are three ways of declaring global variables:

Also worth looking at are perlref and perlreftut


In reply to Re: Using my and library.... by rinceWind
in thread Using my and library.... by kiat

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.