Branch Coverage

Var.xs
Criterion Covered Total %
branch 106 144 73.6


line true false branch
236 11411 0 p = SvPV(name, len);
238 410 11001 if(sigil == 'N') {
240 5 405 if(!(char_attr[(U8)sigil] & CHAR_SIGIL)) return NULL;
241 7250 3751 } else if(sigil == 'P') {
242 7085 165 if(strnNE(p, LEXPADPREFIX, LEXPADPREFIXLEN)) return NULL;
245 0 165 if(!(char_attr[(U8)sigil] & CHAR_SIGIL)) return NULL;
246 165 0 if(p[0] != ':' || p[1] != ':') return NULL;
0 165 if(p[0] != ':' || p[1] != ':') return NULL;
249 8 4313 if(!(char_attr[(U8)*p] & CHAR_IDSTART)) return NULL;
250 23061 2538 for(q = p+1; q != end; q++) {
251 1775 21286 if(!(char_attr[(U8)*q] & CHAR_IDCONT)) return NULL;
274 101 214 if(gv && SvTYPE(gv) == SVt_PVGV) GvMULTI_on(gv);
101 0 if(gv && SvTYPE(gv) == SVt_PVGV) GvMULTI_on(gv);
285 18173 0 if((o->op_flags & OPf_KIDS) && (c = cUNOPx(o)->op_first) &&
18173 0 if((o->op_flags & OPf_KIDS) && (c = cUNOPx(o)->op_first) &&
11301 6872 if((o->op_flags & OPf_KIDS) && (c = cUNOPx(o)->op_first) &&
286 10851 450 c->op_type == OP_CONST &&
287 10851 0 (c->op_private & (OPpCONST_ENTERED|OPpCONST_BARE)) &&
288 10851 0 (ref = cSVOPx(c)->op_sv) && SvPOK(ref) &&
2001 8850 (ref = cSVOPx(c)->op_sv) && SvPOK(ref) &&
290 474 1527 if((he = hv_fetch_ent(GvHV(PL_hintgv), key, 0, 0))) {
299 315 159 if(sigil != 'P' || !PERL_VERSION_GE(5,8,0)) {
335 0 474 if(!SvROK(hintref))
340 110 364 if(type == OP_RV2SV && sigil == 'P' &&
110 0 if(type == OP_RV2SV && sigil == 'P' &&
102 8 if(type == OP_RV2SV && sigil == 'P' &&
341 30 72 SvPVX(ref)[LEXPADPREFIXLEN] == '$' &&
353 129 315 if(referent != fake_referent) {
359 129 315 if(referent != fake_referent) {
369 6 1521 } else if(sigil == 'P') {
384 0 6 if(SvUTF8(ref)) SvUTF8_on(newref);
440 572 2 if(!((compcv = PL_compcv) && CvPADLIST(compcv)))
0 572 if(!((compcv = PL_compcv) && CvPADLIST(compcv)))
461 2 572 if(!compcv)
487 53 113 stash = name[0] == '$' ? stash_lex_sv :
488 27 26 name[0] == '@' ? stash_lex_av : stash_lex_hv;
506 0 0 if(!sv_is_string(name)) croak("%s name is not a string", vari_word);
0 0 if(!sv_is_string(name)) croak("%s name is not a string", vari_word);
0 0 if(!sv_is_string(name)) croak("%s name is not a string", vari_word);
508 0 0 if(!key) croak("malformed %s name", vari_word);
510 0 0 return he ? SvREFCNT_inc(HeVAL(he)) : &PL_sv_undef;
515 104 7 switch(t) {
538 0 539 if(items < 1)
540 4 535 if(items == 1)
542 4 531 if(!(items & 1))
548 530 432 for(i = 1; i != items; i += 2) {
555 530 0 if(!sv_is_string(name))
530 0 if(!sv_is_string(name))
6 524 if(!sv_is_string(name))
558 14 510 if(!key) croak("malformed %s name", vari_word);
560 508 2 rt = SvROK(ref) ? SvTYPE(SvRV(ref)) : SVt_LAST;
569 78 432 if(!rok) croak("%s is not %s reference", vari_word, vt);
572 432 0 if(he) {
574 432 0 SvSETMAGIC(val);
578 157 275 if(char_attr[(U8)sigil] & CHAR_USEPAD)
592 0 47 if(items < 1)
594 4 43 if(items == 1)
599 42 27 for(i = 1; i != items; i++) {
602 42 0 if(!sv_is_string(name))
42 0 if(!sv_is_string(name))
6 36 if(!sv_is_string(name))
605 9 27 if(!key) croak("malformed %s name", vari_word);
607 27 0 if(i != items && (ref = ST(i+1), SvROK(ref))) {
13 14 if(i != items && (ref = ST(i+1), SvROK(ref))) {
612 13 0 cref = he ? HeVAL(he) : &PL_sv_undef;
613 13 0 if(SvROK(cref) && SvRV(cref) != SvRV(ref))
6 7 if(SvROK(cref) && SvRV(cref) != SvRV(ref))
617 9 12 if(char_attr[(U8)sigil] & CHAR_USEPAD)
651 0 392 PUSHMARK(SP);
660 0 32 PUSHMARK(SP);
679 0 147 PUSHMARK(SP);
688 0 15 PUSHMARK(SP);