| Badger documentation | Contained in the Badger distribution. |
Badger::Constants - defines constants for other Badger modules
use Badger::Constants 'HASH';
if (ref $something eq HASH) {
# rejoice! No need to quote the word 'HASH'
}
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
Set to Badger::Constants.
The literal word SCALAR, typically used for testing references.
if (ref $data eq SCALAR) {
...
}
The literal word ARRAY, typically used for testing references.
if (ref $data eq ARRAY) {
...
}
The literal word HASH, typically used for testing references.
if (ref $data eq HASH) {
...
}
The literal word CODE, typically used for testing references.
if (ref $data eq CODE) {
...
}
The literal word GLOB, typically used for testing references.
if (ref $data eq GLOB) {
...
}
The literal word Regexp, typically used for testing references.
if (ref $data eq REGEX) {
...
}
A false value (0)
A true value (1)
A generic flag used to disable things (0).
A generic flag used to enable things (1).
The literal string all.
The literal string none.
The literal string default.
The literal string warn.
The value -1, used to index the last item in an array.
$array[LAST];
An unambiguous carriage return and newline sequence: \015\012
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"}
The literal string refs. Typically used like so:
no strict REFS;
The literal string once. Typically used like so:
no warnings ONCE;
An empty string. How much more blank could this be? And the answer is none. None more blank.
A single space character. Not to be confused with the three dimensional fabric of reality that it happens to share a name with.
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;
A regular expression used to match strings containing the * or ?
wildcard characters.
if ($path =~ WILDCARD) {
# do someting...
}
The following tag sets and associated constants are defined:
SCALAR HASH ARRAY CODE REGEX
FALSE TRUE OFF ON ALL NONE DEFAULT
All the constants.
Andy Wardley http://wardley.org/
Copyright (C) 1996-2009 Andy Wardley. All Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
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: