Hello all,
I am writing a script which requires that a very large multi-level hash
be populated at the start. I am trying to write something somewhat
efficient so I can use a somewhat small loop to do a whole lot of work.
Unfortunately, the size of the hash makes my script look rather ugly,
so I thought it would make sense to move it over to a library/module so
that it can be referenced by those who will read my code only when
necessary. Hopefully this is a logical thing to do; if not, I'm more
than happy to listen to opinions.
My question comes from the following dilemma: My script is accepting
arguments which it uses to populate a string. That string then needs to
be used to partially populate the hash. For example,
# my Perl script has this
my ($PO) = @ARGV;
# my module has this
%dbstuff = ( 0 =>[ { tag => "XML tag",
condition => "SELECT $rpo FROM
purchase_orders" } ],
);
This is a very dumbed-down version of what I'm doing, which is to
populate a hash with database sql queries. The results of which, when
executed in a loop, will be written out to an XML file (hence the need
for the XML tag element in my hash). As an aside, the key "0" in the
example above is used so I can reference the original order in which
they are populated. I read about Tie::Hash, but it did not seem to be
exactly what I want in this case.
So my question is, can I move my hash to a library/module AND still use
the arguments to my perl script to populate it? I thought of moving my
hash to a subroutine to do so, but then I lose my nifty way of
referencing the data by means like $MyModule::dbstuff{$key}[0]{tag}, no?
Any ideas or criticisms are certainly welcome.
-Ian
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]