small bug in change#6144; remove random \xA0 character that snuck
[p5sagit/p5-mst-13.2.git] / lib / English.pm
CommitLineData
8990e307 1package English;
2
3require Exporter;
4@ISA = (Exporter);
5
f06db76b 6=head1 NAME
7
8English - use nice English (or awk) names for ugly punctuation variables
9
10=head1 SYNOPSIS
11
12 use English;
13 ...
14 if ($ERRNO =~ /denied/) { ... }
15
16=head1 DESCRIPTION
17
18This module provides aliases for the built-in variables whose
19names no one seems to like to read. Variables with side-effects
20which get triggered just by accessing them (like $0) will still
21be affected.
22
23For those variables that have an B<awk> version, both long
24and short English alternatives are provided. For example,
25the C<$/> variable can be referred to either $RS or
26$INPUT_RECORD_SEPARATOR if you are using the English module.
27
28See L<perlvar> for a complete list of these.
29
f2545c07 30=head1 BUGS
31
32This module provokes sizeable inefficiencies for regular expressions,
33due to unfortunate implementation details. If performance matters,
34consider avoiding English.
35
f06db76b 36=cut
37
db376a24 38no warnings;
748a9306 39
40# Grandfather $NAME import
41sub import {
42 my $this = shift;
43 my @list = @_;
44 local $Exporter::ExportLevel = 1;
45 Exporter::import($this,grep {s/^\$/*/} @list);
46}
a0d0e21e 47
8990e307 48@EXPORT = qw(
49 *ARG
748a9306 50 *MATCH
51 *PREMATCH
52 *POSTMATCH
53 *LAST_PAREN_MATCH
54 *INPUT_LINE_NUMBER
55 *NR
56 *INPUT_RECORD_SEPARATOR
57 *RS
58 *OUTPUT_AUTOFLUSH
59 *OUTPUT_FIELD_SEPARATOR
60 *OFS
61 *OUTPUT_RECORD_SEPARATOR
62 *ORS
63 *LIST_SEPARATOR
64 *SUBSCRIPT_SEPARATOR
65 *SUBSEP
66 *FORMAT_PAGE_NUMBER
67 *FORMAT_LINES_PER_PAGE
68 *FORMAT_LINES_LEFT
69 *FORMAT_NAME
70 *FORMAT_TOP_NAME
71 *FORMAT_LINE_BREAK_CHARACTERS
72 *FORMAT_FORMFEED
73 *CHILD_ERROR
74 *OS_ERROR
75 *ERRNO
d57fa8b6 76 *EXTENDED_OS_ERROR
748a9306 77 *EVAL_ERROR
78 *PROCESS_ID
79 *PID
80 *REAL_USER_ID
81 *UID
82 *EFFECTIVE_USER_ID
83 *EUID
84 *REAL_GROUP_ID
85 *GID
86 *EFFECTIVE_GROUP_ID
87 *EGID
88 *PROGRAM_NAME
89 *PERL_VERSION
90 *ACCUMULATOR
91 *DEBUGGING
92 *SYSTEM_FD_MAX
93 *INPLACE_EDIT
94 *PERLDB
95 *BASETIME
96 *WARNING
97 *EXECUTABLE_NAME
d57fa8b6 98 *OSNAME
66558a10 99 *LAST_REGEXP_CODE_RESULT
100 *EXCEPTIONS_BEING_CAUGHT
fe307981 101 @LAST_MATCH_START
102 @LAST_MATCH_END
8990e307 103);
104
fb73857a 105# The ground of all being. @ARG is deprecated (5.005 makes @_ lexical)
8990e307 106
8990e307 107 *ARG = *_ ;
108
109# Matching.
110
748a9306 111 *MATCH = *& ;
112 *PREMATCH = *` ;
113 *POSTMATCH = *' ;
114 *LAST_PAREN_MATCH = *+ ;
fe307981 115 *LAST_MATCH_START = *-{ARRAY} ;
116 *LAST_MATCH_END = *+{ARRAY} ;
8990e307 117
118# Input.
119
748a9306 120 *INPUT_LINE_NUMBER = *. ;
121 *NR = *. ;
122 *INPUT_RECORD_SEPARATOR = */ ;
123 *RS = */ ;
8990e307 124
125# Output.
126
748a9306 127 *OUTPUT_AUTOFLUSH = *| ;
128 *OUTPUT_FIELD_SEPARATOR = *, ;
129 *OFS = *, ;
130 *OUTPUT_RECORD_SEPARATOR = *\ ;
131 *ORS = *\ ;
8990e307 132
133# Interpolation "constants".
134
748a9306 135 *LIST_SEPARATOR = *" ;
136 *SUBSCRIPT_SEPARATOR = *; ;
137 *SUBSEP = *; ;
8990e307 138
139# Formats
140
748a9306 141 *FORMAT_PAGE_NUMBER = *% ;
142 *FORMAT_LINES_PER_PAGE = *= ;
143 *FORMAT_LINES_LEFT = *- ;
144 *FORMAT_NAME = *~ ;
145 *FORMAT_TOP_NAME = *^ ;
146 *FORMAT_LINE_BREAK_CHARACTERS = *: ;
147 *FORMAT_FORMFEED = *^L ;
8990e307 148
149# Error status.
150
748a9306 151 *CHILD_ERROR = *? ;
4318d5a0 152 *OS_ERROR = *! ;
153 *ERRNO = *! ;
f86702cc 154 *EXTENDED_OS_ERROR = *^E ;
748a9306 155 *EVAL_ERROR = *@ ;
8990e307 156
157# Process info.
158
748a9306 159 *PROCESS_ID = *$ ;
160 *PID = *$ ;
161 *REAL_USER_ID = *< ;
162 *UID = *< ;
163 *EFFECTIVE_USER_ID = *> ;
164 *EUID = *> ;
165 *REAL_GROUP_ID = *( ;
166 *GID = *( ;
167 *EFFECTIVE_GROUP_ID = *) ;
168 *EGID = *) ;
169 *PROGRAM_NAME = *0 ;
8990e307 170
171# Internals.
172
44dcb63b 173 *PERL_VERSION = *^V ;
748a9306 174 *ACCUMULATOR = *^A ;
305aace0 175 *COMPILING = *^C ;
748a9306 176 *DEBUGGING = *^D ;
177 *SYSTEM_FD_MAX = *^F ;
178 *INPLACE_EDIT = *^I ;
179 *PERLDB = *^P ;
66558a10 180 *LAST_REGEXP_CODE_RESULT = *^R ;
181 *EXCEPTIONS_BEING_CAUGHT = *^S ;
748a9306 182 *BASETIME = *^T ;
183 *WARNING = *^W ;
184 *EXECUTABLE_NAME = *^X ;
d57fa8b6 185 *OSNAME = *^O ;
8990e307 186
187# Deprecated.
188
748a9306 189# *ARRAY_BASE = *[ ;
190# *OFMT = *# ;
191# *MULTILINE_MATCHING = ** ;
44dcb63b 192# *OLD_PERL_VERSION = *] ;
8990e307 193
1941;