in reply to Using my and library....
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:
However, in general it's better to make your variables lexical if you can.
Also worth looking at are perlref and perlreftut
|
|---|