in reply to array confusion
Not sure what you might've been expecting? I threw lots of prints at your code:
and got$pattern = '[aeiou]'; ( $s1, $s2, $s3, $s4 ) = qw( name nerd noodle froodle ); printf "was: '%s'\n", join("' '",$s1,$s2,$s3,$s4); foreach my $item ($s1,$s2,$s3,$s4,) { $item =~ s/$pattern/ /g; } printf "now: '%s'\n", join("' '",$s1,$s2,$s3,$s4); ( $s1, $s2, $s3, $s4 ) = qw( name nerd noodle froodle ); @a = ( $s1, $s2, $s3, $s4 ); print "\n"; printf "was: '%s'\n", join("' '",$s1,$s2,$s3,$s4); printf "was: '%s'\n", join("' '",@a); foreach my $item (@a) { $item =~ s/$pattern/ /g; } printf "now: '%s'\n", join("' '",$s1,$s2,$s3,$s4); printf "now: '%s'\n", join("' '",@a);
was: 'name' 'nerd' 'noodle' 'froodle' now: 'n m ' 'n rd' 'n dl ' 'fr dl ' was: 'name' 'nerd' 'noodle' 'froodle' was: 'name' 'nerd' 'noodle' 'froodle' now: 'name' 'nerd' 'noodle' 'froodle' now: 'n m ' 'n rd' 'n dl ' 'fr dl 'When you did
you copied the _values_ in each variable into the array. You then looped through the array elements changing their values through the magic of foreach aliasing. But that doesn't change the variables you copied from.my @look_for = ($name,$nerd,$noodle,$froodle);
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: array confusion
by Anonymous Monk on Aug 21, 2003 at 06:43 UTC |
In Section
Seekers of Perl Wisdom