Hey there, what is the best way of including a Perl so that the contents 
of it override the existing variables. For example, I have:

<main Perl program>
...
my $comment = "Default\n";
my $resDir = "results";
...
if (@ARGV) {
    my $c = shift;
    $config = "testing/$c.pm";
    unless (my $ret = do $config) {
        die "couldn't parse $config: $@" if $@;
        die "couldn't do $config: $!"    unless defined $ret;
        die "couldn't run $config"       unless $ret;
    }
    # Get the output filehandle
    $output = getOutputFH();
}
...

<a file in testing/>
$comment = "A not quite default test.";
my $resName = 'notdefault.res';

sub getOutputFH() {
    open($fh, ">${resDir}/${resName}.res") or       ***
        die "Can't open results file: $!";
    return $fh;
}
1;

I would like the value of $comment defined in the testing file to 
override the value defined in the main program. I would also 
like for the value of $resDir to be picked up by the getOutputFH() sub, 
however neither of these happens. What is the best way of doing what I'm 
trying to acheive here?
(Obviously, in real life, more things are going to be set, but if I can 
make this example work, it is a short step to getting the rest working)

The error I get is "Use of uninitialized value in concatenation (.) or 
string" at the point marked '***'. I assume it is $resDir not being 
defined.

I know that I could simply have a function that returns a hash (list) 
that I walk through to set the variables, but I want to keep this as 
simple as possible, as I'll be creating lots of little versions of these 
testing files, and the more stuff in them, the more there is to go 
wrong.

-- 
Robin <[EMAIL PROTECTED]>                 JabberID: <[EMAIL PROTECTED]>

Hostes alienigeni me abduxerunt. Qui annus est?

PGP Key 0x776DB663 Fingerprint=DD10 5C62 1E29 A385 9866 0853 CD38 E07A 776D B663

Attachment: pgp00000.pgp
Description: PGP signature

Reply via email to