"Perl Programmers Reference Guide (англ.) (программ.) /19.12.1998/ " - читать интересную книгу автора

($dev, $ino, undef, undef, $uid, $gid) = stat($file);

Lists may be assigned to if and only if each element of
the list is legal to assign to:

($a, $b, $c) = (1, 2, 3);

($map{'red'}, $map{'blue'}, $map{'green'}) = (0x00f, 0x0f0, 0xf00);

Array assignment in a scalar context returns the number of
elements produced by the expression on the right side of
the assignment:

$x = (($foo,$bar) = (3,2,1)); # set $x to 3, not 2
$x = (($foo,$bar) = f()); # set $x to f()'s return count




14/Jun/98 perl 5.005, patch 02 17





PERLDATA(1) Perl Programmers Reference Guide PERLDATA(1)


This is very handy when you want to do a list assignment
in a Boolean context, because most list functions return a
null list when finished, which when assigned produces a 0,
which is interpreted as FALSE.

The final element may be an array or a hash:

($a, $b, @rest) = split;
my($a, $b, %rest) = @_;

You can actually put an array or hash anywhere in the
list, but the first one in the list will soak up all the
values, and anything after it will get a null value. This
may be useful in a _l_o_c_a_l_(_) or _m_y_(_).

A hash literal contains pairs of values to be interpreted
as a key and a value:

# same as map assignment above
%map = ('red',0x00f,'blue',0x0f0,'green',0xf00);

While literal lists and named arrays are usually