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

Matt Nash mattnashbrowns at gmail.com
Mon Feb 21 22:56:09 PST 2011


Would Config::File work for you?
http://search.cpan.org/~gwolf/Config-File-1.50/lib/Config/File.pm

<http://search.cpan.org/~gwolf/Config-File-1.50/lib/Config/File.pm>There is
a well-respected "Perl Best Practices" book which some jerk seems to have
put up on the web in its entirety.  If you search for the title and "config
file" you will find some helpful guidelines to reading and writing config
files in Perl, but I'm not linking to it.

On Mon, Feb 21, 2011 at 11:21 PM, John Ricker <sephtin at gmail.com> wrote:

> 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)
>
>
> _______________________________________________
> Raleigh-talk mailing list
> Raleigh-talk at pm.org
> http://mail.pm.org/mailman/listinfo/raleigh-talk
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/raleigh-talk/attachments/20110222/2dc1c993/attachment.html>


More information about the Raleigh-talk mailing list