parallel assignment

parallel assignment

Perl
($a, $b, $c) = (1, 2, 3);
print "a = ", $a, "\n"; # a = 1
print "b = ", $b, "\n"; # b = 2
print "c = ", $c, "\n"; # c = 3
print "\n";

# 6 is ignored:
($a, $b) = (4, 5, 6);
print "a = ", $a, "\n"; # a = 4
print "b = ", $b, "\n"; # b = 5
print "c = ", $c, "\n"; # c = 3
print "\n";

# $c set to undef:
($a, $b, $c) = (7, 8);
print "a = ", $a, "\n"; # a = 7
print "b = ", $b, "\n"; # b = 8
print "c = ", $c, "\n"; # c =
Ruby
a, b, c = 1, 2, 3
print "a = ", a, "\n" # a = 1
print "b = ", b, "\n" # b = 2
print "c = ", c, "\n" # c = 3
puts

# 6 is ignored:
a, b = 4, 5, 6
print "a = ", a, "\n" # a = 4
print "b = ", b, "\n" # b = 5
print "c = ", c, "\n" # c = 3
puts

# c set to nil:
a, b, c = 7, 8
print "a = ", a, "\n" # a = 7
print "b = ", b, "\n" # b = 8
print "c = ", c, "\n" # c = nil
PHP
<?php
list($a, $b, $c) = array(1 ,2, 3);
echo "a = ", $a, "\n"; # a = 1
echo "b = ", $b, "\n"; # b = 2
echo "c = ", $c, "\n"; # c = 3
echo "\n";

# 6 is ignored:
list($a, $b) = array(4, 5, 6);
echo "a = ", $a, "\n"; # a = 4
echo "b = ", $b, "\n"; # b = 5
echo "c = ", $c, "\n"; # c = 3
echo "\n";

# $c set to NULL:
list($a, $b, $c) = array(7, 8);
echo "a = ", $a, "\n"; # a = 7
echo "b = ", $b, "\n"; # b = 8
echo "c = ", $c, "\n"; # c =
?>
Python
a, b, c = 1, 2, 3
print "a = ", a # a = 1
print "b = ", b # b = 2
print "c = ", c # c = 3
print

# raises "ValueError: too many values to unpack"
a, b = 4, 5, 6

# raises "ValueError: need more than 2 values to unpack"
a, b, c = 7, 8