Hi Tassilo (and CKC),

In article <[EMAIL PROTECTED]>, Tassilo Von Parseval wrote:

> On Sat, May 31, 2003 at 01:50:51AM +0200 Kevin Pfeiffer wrote:
> 
>> I use a function to return a value:
>> "$ENV{HOME}/perl/qotw/qotw13/mb"; which is then assigned to $mb
>> 
>> But the $ENV{HOME} part is not being interpreted, so this sample:
>> 
>> my $mb          = get_config('mb', '.get_quiz');
>> print "$mb\n";
>> exit;
>> 
>> produces literally: "$ENV{HOME}/perl/qotw/qotw13/mb" instead of:
>> /home/pfeiffer/perl/qotw/...
> 
> Can you post the (potentially) relevant bits of get_config()? Sounds as
> though this function reads in a configuration file and returns the
> requested values. Is "$ENV{HOME}/perl/qotw/qotw13/mb" one such line of
> this config file? If so, it would be data and not code and you'd have to
> eval() it or so.

Sorry about leaving out the routine:

sub get_config {
    my ($setting, $cfg_file)  = @_;     # setting is 'mb'

    open DATA, "< $ENV{'HOME'}/$cfg_file" 
       or die "Error, could not open $cfg_file : $!";

    while (<DATA>) {
       next if (/^[#\s]*$/);
       $result = $1 if (/^$setting\s*=\s*"?([^"]*)"?\s*$/);
    }

    close DATA;
    return $result;
 }

Data file looks like:
mb      = "$ENV{'HOME'}/perl/qotw/qotw13/mb"

It already occurred to me that I might need an eval and I've tried using it 
in every position and way possible it seems, but the env variable still 
doesn't get interpreted.

-- 
Kevin Pfeiffer
International University Bremen

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to