App-Env-Login
view release on metacpan or search on metacpan
inc/Module/CPANfile/Environment.pm view on Meta::CPAN
#line 1
package Module::CPANfile::Environment;
use strict;
use warnings;
use Module::CPANfile::Prereqs;
use Carp ();
my @bindings = qw(
on requires recommends suggests conflicts
feature
osname
mirror
configure_requires build_requires test_requires author_requires
);
my $file_id = 1;
sub new {
inc/Module/CPANfile/Environment.pm view on Meta::CPAN
bless {
file => $file,
phase => 'runtime', # default phase
feature => undef,
features => {},
prereqs => Module::CPANfile::Prereqs->new,
mirrors => [],
}, $class;
}
sub bind {
my $self = shift;
my $pkg = caller;
for my $binding (@bindings) {
no strict 'refs';
*{"$pkg\::$binding"} = sub { $self->$binding(@_) };
}
}
sub parse {
my($self, $code) = @_;
my $err;
{
local $@;
$file_id++;
$self->_evaluate(<<EVAL);
package Module::CPANfile::Sandbox$file_id;
no warnings;
BEGIN { \$_environment->bind }
# line 1 "$self->{file}"
$code;
EVAL
$err = $@;
}
if ($err) { die "Parsing $self->{file} failed: $err" };
return 1;
( run in 0.937 second using v1.01-cache-2.11-cpan-2398b32b56e )