mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-25 11:37:56 +00:00
191 lines
3.5 KiB
Perl
191 lines
3.5 KiB
Perl
package English;
|
|
|
|
require Exporter;
|
|
@ISA = (Exporter);
|
|
|
|
=head1 NAME
|
|
|
|
English - use nice English (or awk) names for ugly punctuation variables
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
use English;
|
|
...
|
|
if ($ERRNO =~ /denied/) { ... }
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
This module provides aliases for the built-in variables whose
|
|
names no one seems to like to read. Variables with side-effects
|
|
which get triggered just by accessing them (like $0) will still
|
|
be affected.
|
|
|
|
For those variables that have an B<awk> version, both long
|
|
and short English alternatives are provided. For example,
|
|
the C<$/> variable can be referred to either $RS or
|
|
$INPUT_RECORD_SEPARATOR if you are using the English module.
|
|
|
|
See L<perlvar> for a complete list of these.
|
|
|
|
=head1 BUGS
|
|
|
|
This module provokes sizeable inefficiencies for regular expressions,
|
|
due to unfortunate implementation details. If performance matters,
|
|
consider avoiding English.
|
|
|
|
=cut
|
|
|
|
no warnings;
|
|
|
|
# Grandfather $NAME import
|
|
sub import {
|
|
my $this = shift;
|
|
my @list = @_;
|
|
local $Exporter::ExportLevel = 1;
|
|
Exporter::import($this,grep {s/^\$/*/} @list);
|
|
}
|
|
|
|
@EXPORT = qw(
|
|
*ARG
|
|
*MATCH
|
|
*PREMATCH
|
|
*POSTMATCH
|
|
*LAST_PAREN_MATCH
|
|
*INPUT_LINE_NUMBER
|
|
*NR
|
|
*INPUT_RECORD_SEPARATOR
|
|
*RS
|
|
*OUTPUT_AUTOFLUSH
|
|
*OUTPUT_FIELD_SEPARATOR
|
|
*OFS
|
|
*OUTPUT_RECORD_SEPARATOR
|
|
*ORS
|
|
*LIST_SEPARATOR
|
|
*SUBSCRIPT_SEPARATOR
|
|
*SUBSEP
|
|
*FORMAT_PAGE_NUMBER
|
|
*FORMAT_LINES_PER_PAGE
|
|
*FORMAT_LINES_LEFT
|
|
*FORMAT_NAME
|
|
*FORMAT_TOP_NAME
|
|
*FORMAT_LINE_BREAK_CHARACTERS
|
|
*FORMAT_FORMFEED
|
|
*CHILD_ERROR
|
|
*OS_ERROR
|
|
*ERRNO
|
|
*EXTENDED_OS_ERROR
|
|
*EVAL_ERROR
|
|
*PROCESS_ID
|
|
*PID
|
|
*REAL_USER_ID
|
|
*UID
|
|
*EFFECTIVE_USER_ID
|
|
*EUID
|
|
*REAL_GROUP_ID
|
|
*GID
|
|
*EFFECTIVE_GROUP_ID
|
|
*EGID
|
|
*PROGRAM_NAME
|
|
*PERL_VERSION
|
|
*ACCUMULATOR
|
|
*DEBUGGING
|
|
*SYSTEM_FD_MAX
|
|
*INPLACE_EDIT
|
|
*PERLDB
|
|
*BASETIME
|
|
*WARNING
|
|
*EXECUTABLE_NAME
|
|
*OSNAME
|
|
*LAST_REGEXP_CODE_RESULT
|
|
*EXCEPTIONS_BEING_CAUGHT
|
|
);
|
|
|
|
# The ground of all being. @ARG is deprecated (5.005 makes @_ lexical)
|
|
|
|
*ARG = *_ ;
|
|
|
|
# Matching.
|
|
|
|
*MATCH = *& ;
|
|
*PREMATCH = *` ;
|
|
*POSTMATCH = *' ;
|
|
*LAST_PAREN_MATCH = *+ ;
|
|
|
|
# Input.
|
|
|
|
*INPUT_LINE_NUMBER = *. ;
|
|
*NR = *. ;
|
|
*INPUT_RECORD_SEPARATOR = */ ;
|
|
*RS = */ ;
|
|
|
|
# Output.
|
|
|
|
*OUTPUT_AUTOFLUSH = *| ;
|
|
*OUTPUT_FIELD_SEPARATOR = *, ;
|
|
*OFS = *, ;
|
|
*OUTPUT_RECORD_SEPARATOR = *\ ;
|
|
*ORS = *\ ;
|
|
|
|
# Interpolation "constants".
|
|
|
|
*LIST_SEPARATOR = *" ;
|
|
*SUBSCRIPT_SEPARATOR = *; ;
|
|
*SUBSEP = *; ;
|
|
|
|
# Formats
|
|
|
|
*FORMAT_PAGE_NUMBER = *% ;
|
|
*FORMAT_LINES_PER_PAGE = *= ;
|
|
*FORMAT_LINES_LEFT = *- ;
|
|
*FORMAT_NAME = *~ ;
|
|
*FORMAT_TOP_NAME = *^ ;
|
|
*FORMAT_LINE_BREAK_CHARACTERS = *: ;
|
|
*FORMAT_FORMFEED = *^L ;
|
|
|
|
# Error status.
|
|
|
|
*CHILD_ERROR = *? ;
|
|
*OS_ERROR = *! ;
|
|
*ERRNO = *! ;
|
|
*EXTENDED_OS_ERROR = *^E ;
|
|
*EVAL_ERROR = *@ ;
|
|
|
|
# Process info.
|
|
|
|
*PROCESS_ID = *$ ;
|
|
*PID = *$ ;
|
|
*REAL_USER_ID = *< ;
|
|
*UID = *< ;
|
|
*EFFECTIVE_USER_ID = *> ;
|
|
*EUID = *> ;
|
|
*REAL_GROUP_ID = *( ;
|
|
*GID = *( ;
|
|
*EFFECTIVE_GROUP_ID = *) ;
|
|
*EGID = *) ;
|
|
*PROGRAM_NAME = *0 ;
|
|
|
|
# Internals.
|
|
|
|
*PERL_VERSION = *^V ;
|
|
*ACCUMULATOR = *^A ;
|
|
*COMPILING = *^C ;
|
|
*DEBUGGING = *^D ;
|
|
*SYSTEM_FD_MAX = *^F ;
|
|
*INPLACE_EDIT = *^I ;
|
|
*PERLDB = *^P ;
|
|
*LAST_REGEXP_CODE_RESULT = *^R ;
|
|
*EXCEPTIONS_BEING_CAUGHT = *^S ;
|
|
*BASETIME = *^T ;
|
|
*WARNING = *^W ;
|
|
*EXECUTABLE_NAME = *^X ;
|
|
*OSNAME = *^O ;
|
|
|
|
# Deprecated.
|
|
|
|
# *ARRAY_BASE = *[ ;
|
|
# *OFMT = *# ;
|
|
# *MULTILINE_MATCHING = ** ;
|
|
# *OLD_PERL_VERSION = *] ;
|
|
|
|
1;
|