NAME

Check::GlobalPhase - Check::GlobalPhase fast XS checker for Perl GlobalPhase

VERSION

version 0.001

SYNOPSIS

#!perl

use strict;
use warnings;

use Test::More;    # just used for illustration purpose

use Check::GlobalPhase;

INIT {

    # instead of using a string comparison
    ok ${^GLOBAL_PHASE} eq 'INIT';

    # you can use the boolean helpers
    #   to check if you are in one of the current Perl Phase
    ok Check::GlobalPhase::in_global_phase_init();

    # other helpers
    ok !Check::GlobalPhase::in_global_phase_construct();
    ok !Check::GlobalPhase::in_global_phase_start();
    ok !Check::GlobalPhase::in_global_phase_check();
    ok !Check::GlobalPhase::in_global_phase_run();
    ok !Check::GlobalPhase::in_global_phase_end();
    ok !Check::GlobalPhase::in_global_phase_destruct();
}

# if you need to check more than one phase at the same time
#   you can use bitmask like this
ok Check::GlobalPhase::current_phase()
    & ( Check::GlobalPhase::PERL_PHASE_INIT | Check::GlobalPhase::PERL_PHASE_RUN );

# using one ore more of the available constants
Check::GlobalPhase::PERL_PHASE_CONSTRUCT;
Check::GlobalPhase::PERL_PHASE_START;
Check::GlobalPhase::PERL_PHASE_CHECK;
Check::GlobalPhase::PERL_PHASE_INIT;
Check::GlobalPhase::PERL_PHASE_RUN;
Check::GlobalPhase::PERL_PHASE_END;
Check::GlobalPhase::PERL_PHASE_DESTRUCT;

done_testing;

DESCRIPTION

Check::GlobalPhase provides some fast helpers to check the current Perl Phase. This is avoiding the creation of useless SvPV to perform a string comparison using ${^GLOBAL_PHASE}

View ${^GLOBAL_PHASE} from perlvar for more details.

FUNCTIONS

in_global_phase_construct()

Return a boolean value. True if ${^GLOBAL_PHASE} eq 'CONSTRUCT'

in_global_phase_start()

Return a boolean value. True if ${^GLOBAL_PHASE} eq 'START'

in_global_phase_check()

Return a boolean value. True if ${^GLOBAL_PHASE} eq 'CHECK'

in_global_phase_init()

Return a boolean value. True if ${^GLOBAL_PHASE} eq 'INIT'

in_global_phase_run()

Return a boolean value. True if ${^GLOBAL_PHASE} eq 'RUN'

in_global_phase_end()

Return a boolean value. True if ${^GLOBAL_PHASE} eq 'END'

in_global_phase_destruct()

Return a boolean value. True if ${^GLOBAL_PHASE} eq 'DESTRUCT'

CONSTANTS

You can use this constant to perform some bitmask check with the current Perl_Phase returned from current_phase. (view synopsis)

PERL_PHASE_CONSTRUCT

PERL_PHASE_START

PERL_PHASE_CHECK

PERL_PHASE_INIT

PERL_PHASE_RUN

PERL_PHASE_END

PERL_PHASE_DESTRUCT

AUTHOR

Nicolas R. <atoomic@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2019 by cPanel L.L.C.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.