Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re^2: Seeking the right way to override global variables

by contra-sh (Acolyte)
on Sep 26, 2014 at 15:06 UTC ( #1102146=note: print w/replies, xml ) Need Help??

in reply to Re: Seeking the right way to override global variables
in thread Seeking the right way to override global variables

When you say :

"It is usually a good idea to put "global variables" into a Common module of some kind, perhaps which exposes an object that simply serves as the repository of those values."

Do you mean explicit package + object oriented?

I already use a separate perl module and I'm thinking using explicit package name in addition. But I don't want to put object oriented programming with the rest of the code, which is not.

But I fully agree with you that explicit package name is a better practice (even for small projects like mine, it doesn't hurt).

And yes I already put use strict and use warnings everywhere :D

Thank you for your answer.

Replies are listed 'Best First'.
Re^3: Seeking the right way to override global variables
by Laurent_R (Canon) on Sep 26, 2014 at 17:50 UTC
    Then you could use a pseudo-object, for example storing your global variables in a lexical hashref in the const module, and have in that same module a get and a set functions to access the hash that you export. Something like this:
    use strict; use warnings; use Exporter; our @ISA = 'Exporter'; our @EXPORT = qw(get set); my $private_hash_ref = {VAR1 => "one", VAR2 => "two"}; sub get { my $key = shift; return $private_hash_ref->{$key};} sub set { my ($key, $value) = @_; $private_hash_ref->{$key} = $value;}
    And then in your main code or other module, you just use the set and get functions.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (2)
As of 2022-07-07 04:12 GMT
Find Nodes?
    Voting Booth?

    No recent polls found