I was typing up a response to this last night when my computer died stone dead with a strong whiff of ozone
Undoubtedly the result of having subjected the machine to this insidious bug ;-)
Please verify and report to the Test::More bug queue
With a small typo fixed, your script demos the problem correctly - and I've tested that the addition of '0+' overloading to that demo avoids the issue.
( There was a '}' that needed to be replaced with a ')'. )