Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Jul 1998 10:32:54 -0700
From:      "Randy A. Katz" <randyk@ccsales.com>
To:        questions@FreeBSD.ORG
Subject:   A PERL Question
Message-ID:  <3.0.5.32.19980710103254.037789c0@ccsales.com>

next in thread | raw e-mail | index | archive | help
Hello,

Hope this one is different and challenging for you:

This:

$myvar = "somevariablename";
$$myvar = "somevalue";

print "VAR: $somevariablename\n";

produces the output:

VAR: somevalue


However, this:

@names = ('name1','name2','name3');
@values = ('548','444','222');
&assignvariables;
print "N1: $name1\n";
print "N2: $name2\n";
print "N3: $name3\n";


sub assignvariables {
  for ($i = 0; $i < @names; $i++) {
    $$hash{$names[$i]} = $values[$i];
  }
}

Does not assign a value to the scalars $name1 - $name3

We know this works:

@names = ('name1','name2','name3');
@values = ('548','444','222');
&assignvariables;
print "N1: $hash{'name1'}\n";
print "N2: $hash{'name2'}\n";
print "N3: $hash{'name3'}\n";


sub assignvariables {
  for ($i = 0; $i < @names; $i++) {
    $hash{$names[$i]} = $values[$i];
  }
}


So the question is: How do I get the middle example to assign values to the
scalars $name1, $name2, $name3???

Thanx,
Randy Katz

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3.0.5.32.19980710103254.037789c0>