in reply to Re^2: split and uninitialized variables
in thread split and uninitialized variables

Actually, the map solution doesn't work, because split doesn't return three elements, so you'd need to make it
my ($x, $y, $z) = map { defined($_) ? $_ : '' } (split(/,/, $_))[0..2] +;

Caution: Contents may have been coded under pressure.