[Raleigh-talk] Issues after converting bash to Perl - way to call a config file that contains if/then logic

John Ricker sephtin at gmail.com
Mon Feb 21 20:21:03 PST 2011


Just having converted a bash script to Perl, ran across a couple issues, and
thought maybe sending to the list might obtain a nudge in the right
direction.. :)

The issue I'm currently trying to tackle is pulling in config info.
I have a config information I want to include, but it's dependent on a
variable(s) set in my script.  In bash, I'd just source the file, and it'd
go through the if statements, and all is well.  In Perl, I can't seem to
tackle it...

Example:
#main.pl
if (stuff) {
    $varsneeded = "first";
}
elsif (otherstuff) {
    $varsneeded = "second";
}
else {
    $varsneeded = "last";
}

<need to read in variables here>
<then do stuff with variables>

---x---
#configFile:
if ($varsneeded eq "first") {
    $var1 = "1";
    $var2 = "2";
    ...
}
elseif ($varsneeded eq "second") {
    $var1 = "somethingelse1";
    $var2 = "somethingelse2";
    ...
}

You get the idea.

So, I've tried:
--use:  Did testing with use, and thought it was my answer, but
unfortunately the directory that I need to grab the config file(s) from is
set from a variable... which isn't defined until after compile time, so use
doesn't seem to be an option.
--do/require:  Can't seem to find a way to pass the $varsneeded variable
into the config file(s) (.pl, .pm, .whatever) when using do or require.  If
there's an example out there of this, then somehow google has not been kind
enough to enlighten me.  :P
--eval `config file`: variable to the config file, same issue as do/require
attempts.

Obviously I've oversimplified the example.  The script is over 1200 lines,
so simplified for good reason.  Looking for best practice kind of thing
here.. if more detail is needed (I expect it may come to that).. I can fill
in a lot of blanks, just need to know what info might be helpful.

More info--
After some thought, and after re-reading my question.. thought some
additional info might be helpful.

The script is for creating custom themes.  I'm taking choices made on a php
page that are passed to the script, and the script is pulling in variables
based on those choices... and some other factors.. :P
Each section is approx. 26 variables right now, and there are 19 different
possible options with another dozen or two coming soon.

MY answer to this all, is to break up the config file into a file for each
option, and just pull in the appropriate file... But as this beast grows,
I'd REALLY like the convenience of a find/replace in ONE file when something
changes, instead of 50 or more!

Thanks in advance for any assistance!
-John (sephtin @gmail)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/raleigh-talk/attachments/20110221/239d09c2/attachment.html>


More information about the Raleigh-talk mailing list