The real problem I see is that if you really are referring to values by their index (regardless of how you accomplish that), that's probably a rather serious design problem. Then again, you say:
The requirement is that 8 elements of the array be stored in separate attributes. So instead of doing a single-assignment for each attribute, I was hoping to just put it in a loop and assign it to the corresponding variable.
That's actually quite a common requirement, most often seen in sub argument processing:
my ($name, $number) = @_;
For longer and/or variable lists of arguments, hashes provide more flexibility and basically a free namespace:
#!/usr/bin/env perl use 5.012; use warnings; sub read_order_back { my %courses = ( appetizer => 'soup', salad => 'tossed', @_ ); die "No main?!" unless defined $courses{main}; print "\u$courses{appetizer} to start, followed by a\n" . "lovely $courses{salad} salad, with $courses{main}\n" . "for your entree"; print ", and finally a\nstunning $courses{dessert}" if defined $courses{dessert}; print ". Bon apetit!\n"; } read_order_back(main => 'ribs');
Output:
Soup to start, followed by a lovely tossed salad, with ribs for your entree. Bon apetit!
Update: Whoops, now I'm hungry.
In reply to Re: Array loops and assignments
by rjt
in thread Array loops and assignments
by madbee
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |