Pcore
view release on metacpan or search on metacpan
lib/Pcore.pm view on Meta::CPAN
dist => undef, # mark package aas Pcore dist main module
embedded => undef, # run in embedded mode
export => undef, # install standart import method
forktmpl => undef, # run fork template on startup
l10n => undef, # register package L10N domain
res => undef, # export Pcore::Util::Result qw[res]
role => undef, # package is a Moo role
sql => undef, # export Pcore::Handle::DBI::Const qw[:TYPES]
};
our $EMBEDDED = 0; # Pcore::Core used in embedded mode
our $SCRIPT_PATH = $0;
our $WIN_ENC = undef;
our $CON_ENC = undef;
# define alias for export
our $P = sub : const {'Pcore'};
# configure standard library
our $UTIL = {
geoip => 'Pcore::Util::GeoIP',
lib/Pcore.pm view on Meta::CPAN
# get caller
my $caller = caller;
# parse tags and pragmas
my $import = Pcore::Core::Exporter::parse_import( $self, @_ );
state $INIT = do {
# store -embedded pragma
$EMBEDDED = 1 if $import->{pragma}->{embedded};
require B::Hooks::AtRuntime;
require B::Hooks::EndOfScope::XS;
require EV;
require AnyEvent;
require Coro;
require Pcore::Core::Patch::Coro;
require Pcore::Core::OOP::Class;
require Pcore::Core::OOP::Role;
lib/Pcore.pm view on Meta::CPAN
else {
binmode $h, ':raw:encoding(UTF-8)' or die; # file TODO +RemoveESC
}
}
return;
}
sub _CORE_RUN {
# EMBEDDED mode, if run not from INIT block or -embedded pragma specified:
# CLI not parsed / processed;
# process permissions not changed;
# process will not daemonized;
if ( !$EMBEDDED ) {
require Pcore::Core::CLI;
Pcore::Core::CLI->new( { class => 'main' } )->run( \@ARGV );
if ( !$MSWIN ) {
# GID is inherited from UID by default
if ( defined $ENV->{UID} && !defined $ENV->{GID} ) {
my $uid = $ENV->{UID} =~ /\A\d+\z/sm ? $ENV->{UID} : getpwnam $ENV->{UID};
( run in 0.986 second using v1.01-cache-2.11-cpan-71847e10f99 )