Over the top tone: "Pretty sure that won't compile. $EVAL_ERROR modulo what you get from the filehandle called = isn't an lvalue that can be put through the Goatse operator that I'm aware of."
But seriously(?), I'm almost certain that's not how that would be parsed. = isn't a valid bareword, so Perl would choke on the spaceship operator not being a term... I think.
After testing... It's worse. I think it's parsing <> as the glob operator and = as a filespec.
For those who don't know Perl:
Because of its appearance, <=> really is called the spaceship operator (at least, when it can be parsed as an operator and not whatever happened above).
=()= by comparison has unofficially been called Goatse. If you don't know what Goatse is, find out at your own risk. If you do know, you can see why this particular pseudo-operator was given that name.
And if you're still reading, =()= is a pseudo-operator because it's not actually parsed as part of the syntax. It's literally an assignment operator = followed by an empty list () followed by another assignment operator =, providing list context to the outside of the equals signs that wouldn't otherwise be there.
[Why are you still still reading?] Context is important in Perl. If a function returns a list of values (which is something Perl functions can do) and you try to store the result in a scalar variable, replacing the usual = with =()= will store the number of elements returned rather than the last element of the list.
I personally never understood how anyone could find Perl appealing or even "good" to program in, probably because I could never understand wtf the code was meant to do