getlines_common#
Common implementation for getlines/getline/gets. ix=0 → getlines (list context, croak if scalar) ix=1 → getline/gets (scalar context)
IO.xs:520-565 constructs a fake UNOP with op_ppaddr=PL_ppaddr[OP_READLINE]
and calls CALLRUNOPS. This is deeply tied to perl5’s internal op machinery.
DEVIATION: We use eval_pv to read via <$fh>. The IO.xs XS versions
exist to work around a lexical hints propagation issue with perl5’s
pure-Perl getline/getlines in IO::Handle.pm. Since our C runtime handles
hints natively, this workaround achieves the same result.