Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages

Manual Reference Pages  -  B::OP_PRIVATE (3)

.ds Aq ’


B::Op_private - OP op_private flag definitions



    use B::Op_private;

    # flag details for bit 7 of OP_AELEMs op_private:
    my $name  = $B::Op_private::bits{aelem}{7}; # OPpLVAL_INTRO
    my $value = $B::Op_private::defines{$name}; # 128
    my $label = $B::Op_private::labels{$name};  # LVINTRO

    # the bit field at bits 5..6 of OP_AELEMs op_private:
    my $bf  = $B::Op_private::bits{aelem}{6};
    my $mask = $bf->{bitmask}; # etc


This module provides four global hashes:


which contain information about the per-op meanings of the bits in the op_private field.


This is indexed by op name and then bit number (0..7). For single bit flags, it returns the name of the define (if any) for that bit:

   $B::Op_private::bits{aelem}{7} eq OPpLVAL_INTRO;

For bit fields, it returns a hash ref containing details about the field. The same reference will be returned for all bit positions that make up the bit field; so for example these both return the same hash ref:

    $bitfield = $B::Op_private::bits{aelem}{5};
    $bitfield = $B::Op_private::bits{aelem}{6};

The general format of this hash ref is

        # The bit range and mask; these are always present.
        bitmin        => 5,
        bitmax        => 6,
        bitmask       => 0x60,

        # (The remaining keys are optional)

        # The names of any defines that were requested:
        mask_def      => OPpFOO_MASK,
        baseshift_def => OPpFOO_SHIFT,
        bitcount_def  => OPpFOO_BITS,

        # If present, Concise etc will display the value with a FOO=
        # prefix. If it equals -, then Concise will treat the bit
        # field as raw bits and not try to interpret it.
        label         => FOO,

        # If present, specifies the names of some defines and the
        # display labels that are used to assign meaning to particu-
        # lar integer values within the bit field; e.g. 3 is dis-
        # played as C.
        enum          => [ qw(
                             1   OPpFOO_A  A
                             2   OPpFOO_B  B
                             3   OPpFOO_C  C



This gives the value of every OPp define, e.g.

    $B::Op_private::defines{OPpLVAL_INTRO} == 128;


This gives the short display label for each define, as used by B::Concise and perl -Dx, e.g.

    $B::Op_private::labels{OPpLVAL_INTRO} eq LVINTRO;

If the label equals ’-’, then Concise will treat the bit as a raw bit and not try to display it symbolically.


For each define, this gives a reference to an array of op names that use the flag.

    @ops_using_lvintro = @{ $B::Op_private::ops_using{OPp_LVAL_INTRO} };

Search for    or go to Top of page |  Section 3 |  Main Index

perl v5.22.1 B::OP_PRIVATE (3) 2015-10-17

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.