Context + sub

# Context + sub The context setup for a Perl or XS subroutine does at entersub:
    	ENTER;
    	PUSHBLOCK(cx, CXt_SUB, SP);
    	PUSHSUB(cx);
    	cx->blk_sub.retop = PL_op->op_next;
    	CvDEPTH(cv)++;
    	SAVECOMPPAD();
    	PAD_SET_CUR_NOSAVE(CvPADLIST(cv), CvDEPTH(cv));
            /* push args */
            /* call sub */
and at leavesub
            /* pop return value(s) */
    	POPBLOCK(cx,newpm);
    	LEAVE;
    	cxstack_ix--;
        	POPSUB(cx,sv);	        /* release CV and @_ ... */
        	PL_curpm = newpm;	/* ... and pop $1 et al */
    	LEAVESUB(sv);
        	return cx->blk_sub.retop;

illguts-0.41 © 1998 Gisle Aas, 2009 Reini Urban | 22/23 |