Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: strict/warnings interference with global declarations

by revdiablo (Prior)
on Nov 03, 2004 at 00:43 UTC ( #404796=note: print w/replies, xml ) Need Help??


in reply to strict/warnings interference with global declarations

You need to declare the variable with our in file2.pm as well. Note that if file2.pm had a package statement, that would cause an additional problem. But since your example doesn't, I won't cloud the issue further. :-)

Update: if you're looking for a bit more explanation, then you should know that our does not actually create a global variable, because that doesn't need to be done.

Package variables can be used at any time, they don't need to be declared at all. You can get access without our by fully-qualifying the package name, e.g. $main::var or $::var (which is just shorthand for the same thing). When you use our, it merely creates an alias to the package variable, so you don't have to fully qualify it. But that alias is not global, it is lexically scoped. Since file boundaries create new lexical scopes, the alias is not available from file2.pm.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://404796]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (1)
As of 2021-10-25 01:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My first memorable Perl project was:







    Results (89 votes). Check out past polls.

    Notices?