… | |
… | |
157 | /* optionally saved, might be zero */ |
157 | /* optionally saved, might be zero */ |
158 | AV *defav; /* @_ */ |
158 | AV *defav; /* @_ */ |
159 | SV *defsv; /* $_ */ |
159 | SV *defsv; /* $_ */ |
160 | SV *errsv; /* $@ */ |
160 | SV *errsv; /* $@ */ |
161 | SV *irssv; /* $/ */ |
161 | SV *irssv; /* $/ */ |
|
|
162 | SV *irssv_sv; /* real $/ cache */ |
162 | |
163 | |
163 | #define VAR(name,type) type name; |
164 | #define VAR(name,type) type name; |
164 | # include "state.h" |
165 | # include "state.h" |
165 | #undef VAR |
166 | #undef VAR |
166 | |
167 | |
… | |
… | |
301 | #undef VAR |
302 | #undef VAR |
302 | |
303 | |
303 | if (c->defav) REPLACE_SV (GvAV (PL_defgv), c->defav); |
304 | if (c->defav) REPLACE_SV (GvAV (PL_defgv), c->defav); |
304 | if (c->defsv) REPLACE_SV (DEFSV , c->defsv); |
305 | if (c->defsv) REPLACE_SV (DEFSV , c->defsv); |
305 | if (c->errsv) REPLACE_SV (ERRSV , c->errsv); |
306 | if (c->errsv) REPLACE_SV (ERRSV , c->errsv); |
306 | if (c->irssv) REPLACE_SV (PL_rs , c->irssv); |
307 | if (c->irssv) |
|
|
308 | { |
|
|
309 | if (c->irssv == PL_rs || sv_eq (PL_rs, c->irssv)) |
|
|
310 | SvREFCNT_dec (c->irssv); |
|
|
311 | else |
|
|
312 | { |
|
|
313 | REPLACE_SV (PL_rs, c->irssv); |
|
|
314 | if (!c->irssv_sv) c->irssv_sv = get_sv ("/", 0); |
|
|
315 | sv_setsv (c->irssv_sv, PL_rs); |
|
|
316 | } |
|
|
317 | } |
307 | |
318 | |
308 | { |
319 | { |
309 | dSP; |
320 | dSP; |
310 | CV *cv; |
321 | CV *cv; |
311 | |
322 | |