Badger::Constants - defines constants for other Badger modules


Badger documentation Contained in the Badger distribution.

Index


Code Index:

NAME

Top

Badger::Constants - defines constants for other Badger modules

SYNOPSIS

Top

    use Badger::Constants 'HASH';

    if (ref $something eq HASH) {
        # rejoice!  No need to quote the word 'HASH'
    }

DESCRIPTION

Top

This module defines a number of constants used by other Badger modules. They can be imported into the caller's namespace by naming them as options to the use Badger::Constants statement:

    use Badger::Constants 'HASH';
    print HASH;   # HASH

Alternatively, one of the tagset identifiers may be specified to import different sets of constants.

    use Badger::Constants ':types';
    print HASH;   # HASH

EXPORTABLE CONSTANTS

Top

CONSTANTS

Set to Badger::Constants.

SCALAR

The literal word SCALAR, typically used for testing references.

    if (ref $data eq SCALAR) {
        ...
    }

ARRAY

The literal word ARRAY, typically used for testing references.

    if (ref $data eq ARRAY) {
        ...
    }

HASH

The literal word HASH, typically used for testing references.

    if (ref $data eq HASH) {
        ...
    }

CODE

The literal word CODE, typically used for testing references.

    if (ref $data eq CODE) {
        ...
    }

GLOB

The literal word GLOB, typically used for testing references.

    if (ref $data eq GLOB) {
        ...
    }

REGEX

The literal word Regexp, typically used for testing references.

    if (ref $data eq REGEX) {
        ...
    }

FALSE

A false value (0)

TRUE

A true value (1)

OFF

A generic flag used to disable things (0).

ON

A generic flag used to enable things (1).

ALL

The literal string all.

NONE

The literal string none.

DEFAULT

The literal string default.

WARN

The literal string warn.

LAST

The value -1, used to index the last item in an array.

    $array[LAST];

CRLF

An unambiguous carriage return and newline sequence: \015\012

PKG

An alias for the :: symbol used to delimiter Perl packages. Typically used to construct symbol references.

    use Badger::Constants 'PKG';
    use constant EXAMPLE => 'EXAMPLE';

    my $var = ${ $pkg.PKG.EXAMPLE };   # same as: ${"${pkg}::EXAMPLE"}

REFS

The literal string refs. Typically used like so:

    no strict REFS;

ONCE

The literal string once. Typically used like so:

    no warnings ONCE;

BLANK

An empty string. How much more blank could this be? And the answer is none. None more blank.

SPACE

A single space character. Not to be confused with the three dimensional fabric of reality that it happens to share a name with.

DELIMITER

A regular expression used to split whitespace delimited tokens. Also accepts commas with optional trailing whitespace as a delimiter.

    $names = [ split DELIMITER, $names ] 
        unless ref $names eq ARRAY;

WILDCARD

A regular expression used to match strings containing the * or ? wildcard characters.

    if ($path =~ WILDCARD) {
        # do someting...
    } 

EXPORTABLE TAG SETS

Top

The following tag sets and associated constants are defined:

:types

    SCALAR HASH ARRAY CODE REGEX

:values

    FALSE TRUE OFF ON ALL NONE DEFAULT

:all

All the constants.

AUTHOR

Top

Andy Wardley http://wardley.org/

COPYRIGHT

Top

SEE ALSO

Top

See Badger::Exporter for more information on exporting variables.


Badger documentation Contained in the Badger distribution.

#========================================================================
#
# Badger::Constants
#
# DESCRIPTION
#   Defines various constants used by the Badger modules
#
# AUTHOR
#   Andy Wardley   <abw@wardley.org>
#
#========================================================================

package Badger::Constants;

our $VERSION = 0.01;

use strict;
use warnings;
use base 'Badger::Exporter';
use constant {
    # this is me
    CONSTANTS       => __PACKAGE__,
    
    # various type classes
    SCALAR          => 'SCALAR',
    ARRAY           => 'ARRAY',
    HASH            => 'HASH',
    CODE            => 'CODE',
    GLOB            => 'GLOB',
    REGEX           => 'Regexp',
    
    # constant values
    FALSE           => 0,
    TRUE            => 1,
    OFF             => 0,            
    ON              => 1,            
    ALL             => 'all',
    NONE            => 'none',
    DEFAULT         => 'default',
    
    # misc constants used internally
    FIRST           =>  0,                  # first and last items in a list
    LAST            => -1,
    CRLF            => "\015\012",          # unambiguous CR+LF sequence
    PKG             => '::',                # for joining pkg names
    REFS            => 'refs',              # no strict REFS
    ONCE            => 'once',              # use warnings ONCE
    WARN            => 'warn',              # default warning handler
    BLANK           => '',                  # how much more blank could this be?
    SPACE           => ' ',                 # and the answer is none, none more blank
    DELIMITER       => qr/(?:,\s*)|\s+/,    # match a comma or whitespace
    WILDCARD        => qr/[\*\?]/,          # wildcards: *.html foo??.txt

};

CONSTANTS->export_any(qw( 
    CONSTANTS FIRST LAST CRLF PKG REFS ONCE WARN BLANK SPACE 
    DELIMITER WILDCARD 
));

CONSTANTS->export_tags({
    types => [qw( 
        SCALAR ARRAY HASH CODE GLOB REGEX
    )],
    values => [qw(
        FALSE TRUE OFF ON ALL NONE DEFAULT
    )],
});

1;

__END__

# Local Variables:
# mode: perl
# perl-indent-level: 4
# indent-tabs-mode: nil
# End:
#
# vim: expandtab shiftwidth=4: