App-Sandy

 view release on metacpan or  search on metacpan

lib/App/Sandy/CLI/App.pm  view on Meta::CPAN


has 'app_path' => (
	is      => 'ro',
	isa     => 'Str',
	builder => '_build_app_path'
);

sub _build_app_path {
	# Determine dynamic the app path that inherit from this class
	# If no one is inheriting, return this class path
	my $class = (caller(1))[3];
	$class =~ s/::new//;
	my $command_pm = file(split /::/ => "$class.pm");
	return $INC{$command_pm};
}

override 'opt_spec' => sub {
	super
};

sub command_map_bultin {

ppport.h  view on Meta::CPAN


    for (;;) {
	/* we may be in a higher stacklevel, so dig down deeper */
	while (cxix < 0 && top_si->si_type != PERLSI_MAIN) {
	    top_si = top_si->si_prev;
	    ccstack = top_si->si_cxstack;
	    cxix = DPPP_dopoptosub_at(ccstack, top_si->si_cxix);
	}
	if (cxix < 0)
	    return NULL;
	/* caller() should not report the automatic calls to &DB::sub */
	if (PL_DBsub && GvCV(PL_DBsub) && cxix >= 0 &&
		ccstack[cxix].blk_sub.cv == GvCV(PL_DBsub))
	    level++;
	if (!level--)
	    break;
	cxix = DPPP_dopoptosub_at(ccstack, cxix - 1);
    }

    cx = &ccstack[cxix];
    if (dbcxp) *dbcxp = cx;

    if (CxTYPE(cx) == CXt_SUB || CxTYPE(cx) == CXt_FORMAT) {
        const I32 dbcxix = DPPP_dopoptosub_at(ccstack, cxix - 1);
	/* We expect that ccstack[dbcxix] is CXt_SUB, anyway, the
	   field below is defined for any cx. */
	/* caller() should not report the automatic calls to &DB::sub */
	if (PL_DBsub && GvCV(PL_DBsub) && dbcxix >= 0 && ccstack[dbcxix].blk_sub.cv == GvCV(PL_DBsub))
	    cx = &ccstack[dbcxix];
    }

    return cx;
}

# endif
#endif /* caller_cx */
#endif /* 5.6.0 */



( run in 0.284 second using v1.01-cache-2.11-cpan-cc502c75498 )