Better fix for #119529
<$fh> used to loop if $fh was opened to an in-memory handle containing
a reference.
Commit
552908b174 fixed the loop by forcing a reference to a string
when the handle was created. It did not take into account that the
reference might be read-only. It was also insufficient, in that
the target scalar could be set to a reference after the handle
was created.
The real reason it was looping was that the code for returning and
setting the size of the buffer was not handling non-PVs properly
(unless they were globs, which were special-cased). It might return
0, and it might not, depending on what the internal SV field hap-
pened to hold.
This caused looping under 5.12 and onwards, but even in 5.10 <$fh>
returned nothing.
In this case, deleting code makes things just work.
Reverting the hunk from
552908b174 stops appending to refs from work-
ing, so I tweaked PerlIOScalar_pushed to fix that (which also reduced
the amount of code).