App-Framework-Lite
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
#####################################################################
# Common Utility Functions
sub _caller {
my $depth = 0;
my $call = caller($depth);
while ( $call eq __PACKAGE__ ) {
$depth++;
$call = caller($depth);
}
return $call;
}
# Done in evals to avoid confusing Perl::MinimumVersion
eval( $] >= 5.006 ? <<'END_NEW' : <<'END_OLD' ); die $@ if $@;
sub _read {
local *FH;
open( FH, '<', $_[0] ) or die "open($_[0]): $!";
binmode FH;
inc/Module/Install/Makefile.pm view on Meta::CPAN
}
sub Makefile { $_[0] }
my %seen = ();
sub prompt {
shift;
# Infinite loop protection
my @c = caller();
if ( ++$seen{"$c[1]|$c[2]|$_[0]"} > 3 ) {
die "Caught an potential prompt infinite loop ($c[1]|$c[2]|$_[0])";
}
# In automated testing or non-interactive session, always use defaults
if ( ($ENV{AUTOMATED_TESTING} or -! -t STDIN) and ! $ENV{PERL_MM_USE_DEFAULT} ) {
local $ENV{PERL_MM_USE_DEFAULT} = 1;
goto &ExtUtils::MakeMaker::prompt;
} else {
goto &ExtUtils::MakeMaker::prompt;
lib/App/Framework/Lite.pm view on Meta::CPAN
#============================================================================================
BEGIN {
#@NO-EMBED BEGIN
# Clear flag for non-embedded
$EMBEDDED = 1 ;
#@NO-EMBED END
## Get caller information
my ($package, $filename, $line, $subr, $has_args, $wantarray) = caller(0) ;
## Add a couple of useful function calls into the caller namespace
{
no warnings 'redefine';
no strict 'refs';
foreach my $fn (qw/go/)
{
*{"${package}::$fn"} = sub {
my @callinfo = caller(0);
my $app = App::Framework::Lite->new(@_,
'_caller_info' => \@callinfo) ;
$app->$fn() ;
};
}
}
## Optional modules
foreach my $mod (@OPT_MOD)
{
lib/App/Framework/Lite.pm view on Meta::CPAN
#============================================================================================
# Set up module import
sub import
{
my $pkg = shift;
# save for later
$import_args = join ' ', @_ ;
## Get caller information
my ($package, $filename, $line, $subr, $has_args, $wantarray) = caller(0) ;
## Set program info
App::Framework::Lite->_set_paths($filename) ;
## Import modules into caller space
my $include = "package $package;\n" ;
foreach my $use (@USED)
{
$include .= "use $use ;\n" ;
lib/App/Framework/Lite.pm view on Meta::CPAN
foreach my $field (keys %FIELDS)
{
$this->{$field} = $FIELDS{$field} ;
}
$this->_setup_modules() ;
## Get caller information
my $callinfo_aref = delete $args{'_caller_info'} ;
if (!$callinfo_aref)
{
$callinfo_aref = [ caller(0) ] ;
}
my ($package, $filename, $line, $subr, $has_args, $wantarray) = @$callinfo_aref ;
$this->set(
'package' => $package,
'filename' => $filename,
) ;
## Set program info
$this->_set_paths($filename) ;
lib/App/Framework/Lite/Object.pm view on Meta::CPAN
=cut
sub dump_callstack
{
my $this = shift ;
my ($package, $filename, $line, $subr, $has_args, $wantarray) ;
my $i=0 ;
print "\n-----------------------------------------\n";
do
{
($package, $filename, $line, $subr, $has_args, $wantarray) = caller($i++) ;
if ($subr)
{
print "$filename :: $subr :: $line\n" ;
}
}
while($subr) ;
print "-----------------------------------------\n\n";
}
lib/App/Framework/Lite/Object.pm view on Meta::CPAN
# Set method = <name>
# Undefine method = undef_<name>
#
sub AUTOLOAD
{
print "AUTOLOAD ($AUTOLOAD)\n" if $global_debug>=5 ;
## NEW
if ($global_debug>=10)
{
my $caller = (caller())[0] ;
print "Unexpected AUTOLOAD ($AUTOLOAD) from $caller\n" ;
}
## NEW
my $this = shift;
# prt_data("AUTOLOAD ($AUTOLOAD) this=", $this) if $global_debug>=5 ;
#print "$this=",ref($this),"\n";
if (!ref($this)||ref($this)eq'ARRAY')
{
( run in 0.379 second using v1.01-cache-2.11-cpan-cc502c75498 )