From owner-freebsd-questions Fri Jul 10 10:37:07 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id KAA11818 for freebsd-questions-outgoing; Fri, 10 Jul 1998 10:37:07 -0700 (PDT) (envelope-from owner-freebsd-questions@FreeBSD.ORG) Received: from ccsales.ccsales.com (ccsales.ccsales.com [207.137.172.4]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id KAA11811 for ; Fri, 10 Jul 1998 10:37:04 -0700 (PDT) (envelope-from randyk@ccsales.com) Received: from ntrkcasa ([207.13.225.224]) by ccsales.ccsales.com (8.9.0/8.9.0) with SMTP id KAA24517; Fri, 10 Jul 1998 10:37:01 -0700 (PDT) Message-Id: <3.0.5.32.19980710103254.037789c0@ccsales.com> X-Sender: randyk@ccsales.com X-Mailer: QUALCOMM Windows Eudora Pro Version 3.0.5 (32) Date: Fri, 10 Jul 1998 10:32:54 -0700 To: questions@FreeBSD.ORG From: "Randy A. Katz" Subject: A PERL Question Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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