i am working on dynamically building a .conf file by using "include" like statements within a script. i read over this which pointed me towards reading this and got me off on the right foot. however, some of the scripts ran through 'do' need to be able to pull variable values from the original script. an example will hopefully clarify:

genconf.pl

#!/usr/bin/perl -w use strict; my $domain = "lunarmedia.net"; do 'genheader'; do 'genlimit'; do 'genfooter';

###

genheader

print "<VirtualHost $domain>\n";

the genconf.pl file executes and runs the three external scripts. each of the external scripts just prints out a line of text. however, as you can see in genheader, a portion of the text requires some sort of knowledge about a variable set within the main script.

the only way i figured i could get around this is to try something like:

genconf.pl

#!/usr/bin/perl -w use strict; require genheader; require genlimit; require genfooter; my $domain = "lunarmedia.net"; &genHeader($domain); &genLimit; &genFooter;

###

genheader

sub genHeader { my $domain = shift; print "<VirtualHost $domain>\n"; }

but i dont believe that i am really understanding require because the magic just isnt happening with this code either. i think using the require or even a 'use' statement for a future module possibility(?) may be the way i want to go, however, i am not certain what i am missing in my required file to make it work. could someone enlighten me?

humbly -c


In reply to Passing variables to scripts rans through 'do' by c

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.