Janek Schleicher wrote:
> Paul D. Kraus wrote at Thu, 17 Jul 2003 15:33:11 -0400:
>
> > Is there a way to assign a single value to a list? other then
> > doing the obvious and spelling out each list assignment or
> > running through a loop.
> >
> > For instance...
> >
> > my ( $var1, $var2, $var3, ... ) = "Paul"
> > assigning paul to all variables in the list.
> >
> > or a more useful example
> >
> > my  ($passed1, $passed2, ... ) = shift
>
>
> As you know how many items are on the left side of the list,
> you can use the x operator:
>
> my ( $var1, $var2, $var3, $var4 ) = ("Paul") x 4;
>
> That works the same with shift.
> But note that in this way, $passed1 would be equal to $passed2 and
> so on
>
> If you wanted to have $passed1 with the first passed argument,
> $passed2 with the second one and so on,
> you should use the @_ array directly:
>
> my ($passed1, $passed2, $passed3 ) = @_;
>
>
> BTW: If you would have an array instead of a list at the left side,
>      everything becomes easier:
> $_ = "a value" foreach @array;

This works with a list Janek, and would be my preferred solution.

  $_ = 'Paul' foreach my ( $var1, $var2, $var3, $var4 );

But note, Paul, that your second example is very different from
your first. Copying a subroutine's parameters into a number
of scalar variables is done just as Kanek hash said. This is
a standard Perl idiom.

HTH,

Rob




-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to