in reply to uninitialized variables

Another way is to do something like:
my ($x, $y, $z) = map { $_ || '' } split;
Since undef is false in a boolean context, it will assign the empty string to variables that are undefined.

Note: This will also assign the empty string instead of zero or the string containing zero. Those also evaluate as false in a boolean context. If you just want to replace the undefined strings, do something like:

my ($x, $y, $z) = map { defined $_ ? $_ : '' } split;

------
We are the carpenters and bricklayers of the Information Age.

Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.