in reply to Re: array confusion
in thread array confusion

Following on from the foregoing to achieve a result from the second example the same as the first you could do:
my @look_for = ($name,$nerd,$noodle,$froodle,); foreach my $item (@look_for) { $item =~ s/$i_seek/ /g; } ($name,$nerd,$noodle,$froodle,) = @look_for;

But this looks a little clumsy - maybe there's a better way?

Replies are listed 'Best First'.
Re: Re: Re: array confusion
by davido (Cardinal) on Aug 21, 2003 at 08:12 UTC
    That is one way. It assigns the list of values contained in @look_for back to the original scalar variables.

    Another way is using references.

    # Assign to @look_for, references to $name, etc. # Note: \($x, $y, $z) is the same as (\$x, \$y, \$z) # because the reference symbol binds to each element in # the list. my @look_for = \( $name, $nerd, $noodle, $froodle,); foreach my $item ( @look_for ) { # notice how I dereference $item so that we get # to what it points to. $$item =~ s/$i_seek/ /g; }

    That will do what he's looking for, unless, of course, we've now broken other uses of @look_for in his code where his code might be expecting @look_for to contain scalar values rather than references to scalar variables.

    Dave

    "If I had my life to do over again, I'd be a plumber." -- Albert Einstein