Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: Using variables in require file... not possible?

by Rubber Cthulhu (Acolyte)
on Oct 16, 2011 at 08:56 UTC ( [id://931746]=note: print w/replies, xml ) Need Help??


in reply to Using variables in require file... not possible?

Using global variables is really a bad practice. But if you realy want to make the program with this aproach, you should know some tricks. When you are using 'use strict' pragma you must declare your global variables using explicit package prefix. Though you don't declare any package in your main module, it has name 'main' defined implicitly. Hence you need to declare your 'foo' global as
use strict; $main::foo = 'bar'; # that's ok
instead
use strict; $foo = 'bar'; # error!!! it doesn't work with strict pragma!
So when you want to use global $foo (defined in main script) in other modules you need to use it's full name - $main::foo. Simple example:

1. Script main.pl
#!/usr/bin/perl use strict; use pkg1; $main::foo = 'bar'; print pkg1_get_foo()."\n";
2. Module pkg1.pm
use strict; sub pkg1_get_foo { return "From pkg1: $main::foo"; } 1;

Replies are listed 'Best First'.
Re^2: Using variables in require file... not possible?
by anneli (Pilgrim) on Oct 16, 2011 at 10:03 UTC

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (6)
As of 2024-04-18 18:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found