in reply to What's happening in this expression?

In Perl, as in the C programming language, statements are separated with a semicolon. There are also times where statements can be separated with a comma, mostly used in a for ( i = 1, j = 10; i < 10; ++i, j += 4 ) { ... } expression.

In your case you have four separate statements, separated by commas instead of semicolons: i.e. my $a; $x; $y; $z = foo().