Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: Assigning variables via looping

by gwadej (Chaplain)
on Jun 02, 2009 at 19:48 UTC ( #767755=note: print w/ replies, xml ) Need Help??


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";
G. Wade


Comment on Re: Assigning variables via looping
Select or Download Code
Re^2: Assigning variables via looping
by Errto (Vicar) on Jun 02, 2009 at 21:14 UTC
    (use strict would have told you that.)

    Well, use strict wouldn't let you use symbolic references at all. Even if you declared @names, $jonah, $peter, and $larry. Though I guess if you only enable strict for vars, not refs, that might tell you something.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://767755]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (9)
As of 2014-09-22 09:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (185 votes), past polls