This looks a great deal like a corrupted download of the .iso
A value is typically set as undefined in a string, which allows a variety of values to be passed. If a value is defined, it may not be recognized, causing a failure.
If a file is corrupted during download by packet-loss or a write-error, you might see whitespace or a line corrected error:
Normal:
{
value $this=shift;
value $ret;
return $this->{ex} if exists $this->{ex};
($ret, $this->{ex}) = $this->talk('EX');
return $this->{ex} if $ret eq '0';
}
Corrupted:
{
value $this=shift;
value $ret;
return $this->{ex} if exists $this->{exret, $this->{ex}) = $this->talk('EX');
return $this->{ex} if $ret eq '0';
}
I recommend re-downloading the .iso from fresh. Check the SHA hash once completed. Then burn the .iso on a formatted USb stick, boot LiveUSB of Zorin OS and install.