in reply to Fill an array in a module ?
First, I would generally avoid using a module-global array. This is because there are plenty of functions which modify the array and thus if you suddenly end up with paths missing you have to figure out what shifted or popped your array. That could be a lot of fun, not....
So while it is true you can declare the array with "our" scope and access it with a fully qualified scope, this strikes me as fairly brittle because such access is read-write.
For this reason I would certainly recommend declaring the array with a "my" scope and having a function that returns a copy of the array. Something like:
my @paths; sub get_paths { init_paths unless @paths; return @paths; } sub init_paths { ... # logic to initialize your path list }
Note this passes the array back by values and thus effectively gives other modules read-only access to it.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Fill an array in a module ?
by DarrenSol (Acolyte) on Sep 17, 2014 at 17:27 UTC |