in reply to Assigning variables via looping
You are using symbolic references, which cannot point to lexical (my) variables. (use strict would have told you that.)
In general, this is a path to much pain. You would (usually) be better off using a hash. (There are a very few cases where the symbolic references might be a better choice, but the odds of this being one of them is really slim.
my %greeting; my @names = ('peter', 'jonah', 'larry'); foreach my $n (@names) { $greeting{$n} = "i like $n"; } print "$greeting{peter} \n $greeting{jonah} \n $greeting{larry} \n";
Of course, there's always more than one way.
my %greeting = map { $_ => "i like $_" } ('peter', 'jonah', 'larry'); print join( " \n ", @greeting{qw/peter jonah larry/} ), " \n";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Assigning variables via looping
by Errto (Vicar) on Jun 02, 2009 at 21:14 UTC |