... if (SvOOK( n ) && (SvIV(sv) > 0)) { /* If we've some reserve left use it */ SvLEN_set( n, SvLEN( n ) +1 ); SvCUR_set( n, ++l ); SvPV_set( n, --a ); SvIVX(sv)--; } ...