in reply to Surprise: scalar(($x, $y) = split)

use strict; use warnings; { my( $x , $y ) ; print 'scalar( ($x, $y ) ) ', scalar( ($x, $y ) ) +, "\n"; print 'scalar( ($x, $y ) ) = () ', scalar( ($x, $y ) = + () ), "\n"; print 'scalar( ($x, $y ) ) = (undef) ', scalar( ($x, $y ) = + (undef) ), "\n"; print 'scalar( ($x, $y ) ) = (undef,undef) ', scalar( ($x, $y ) = + (undef,undef) ), "\n"; print 'scalar( ($x, $y ) ) = (0) ', scalar( ($x, $y ) = + (0) ), "\n"; print 'scalar( ($x, $y ) ) = (0,0) ', scalar( ($x, $y ) = + (0,0) ), "\n"; print 'scalar( ($x, $y ) ) = (1,0) ', scalar( ($x, $y ) = + (1,0) ), "\n"; print 'scalar( ($x, $y ) ) = (1,1) ', scalar( ($x, $y ) = + (1,1) ), "\n"; print 'scalar( ($x, $y ) ) = (1,1,1) ', scalar( ($x, $y ) = + (1,1,1) ), "\n"; print "\n\n"; } __END__ Useless use of private variable in void context at - line 5. Use of uninitialized value $y in print at - line 5. scalar( ($x, $y ) ) scalar( ($x, $y ) ) = () 0 scalar( ($x, $y ) ) = (undef) 1 scalar( ($x, $y ) ) = (undef,undef) 2 scalar( ($x, $y ) ) = (0) 1 scalar( ($x, $y ) ) = (0,0) 2 scalar( ($x, $y ) ) = (1,0) 2 scalar( ($x, $y ) ) = (1,1) 2 scalar( ($x, $y ) ) = (1,1,1) 3