This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
integrate change#2904 from maint-5.005
[perl5.git] / lib / English.pm
CommitLineData
8990e307
LW
1package English;
2
3require Exporter;
4@ISA = (Exporter);
5
f06db76b
AD
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
19ddd453
JT
18You should I<not> use this module in programs intended to be portable
19among Perl versions, programs that must perform regular expression
20matching operations efficiently, or libraries intended for use with
21such programs. In a sense, this module is deprecated. The reasons
22for this have to do with implementation details of the Perl
23interpreter which are too thorny to go into here. Perhaps someday
24they will be fixed to make "C<use English>" more practical.
25
f06db76b
AD
26This module provides aliases for the built-in variables whose
27names no one seems to like to read. Variables with side-effects
28which get triggered just by accessing them (like $0) will still
29be affected.
30
31For those variables that have an B<awk> version, both long
32and short English alternatives are provided. For example,
33the C<$/> variable can be referred to either $RS or
34$INPUT_RECORD_SEPARATOR if you are using the English module.
35
36See L<perlvar> for a complete list of these.
37
38=cut
39
748a9306
LW
40local $^W = 0;
41
42# Grandfather $NAME import
43sub import {
44 my $this = shift;
45 my @list = @_;
46 local $Exporter::ExportLevel = 1;
47 Exporter::import($this,grep {s/^\$/*/} @list);
48}
a0d0e21e 49
8990e307
LW
50@EXPORT = qw(
51 *ARG
748a9306
LW
52 *MATCH
53 *PREMATCH
54 *POSTMATCH
55 *LAST_PAREN_MATCH
56 *INPUT_LINE_NUMBER
57 *NR
58 *INPUT_RECORD_SEPARATOR
59 *RS
60 *OUTPUT_AUTOFLUSH
61 *OUTPUT_FIELD_SEPARATOR
62 *OFS
63 *OUTPUT_RECORD_SEPARATOR
64 *ORS
65 *LIST_SEPARATOR
66 *SUBSCRIPT_SEPARATOR
67 *SUBSEP
68 *FORMAT_PAGE_NUMBER
69 *FORMAT_LINES_PER_PAGE
70 *FORMAT_LINES_LEFT
71 *FORMAT_NAME
72 *FORMAT_TOP_NAME
73 *FORMAT_LINE_BREAK_CHARACTERS
74 *FORMAT_FORMFEED
75 *CHILD_ERROR
76 *OS_ERROR
77 *ERRNO
d57fa8b6 78 *EXTENDED_OS_ERROR
748a9306
LW
79 *EVAL_ERROR
80 *PROCESS_ID
81 *PID
82 *REAL_USER_ID
83 *UID
84 *EFFECTIVE_USER_ID
85 *EUID
86 *REAL_GROUP_ID
87 *GID
88 *EFFECTIVE_GROUP_ID
89 *EGID
90 *PROGRAM_NAME
91 *PERL_VERSION
92 *ACCUMULATOR
93 *DEBUGGING
94 *SYSTEM_FD_MAX
95 *INPLACE_EDIT
96 *PERLDB
97 *BASETIME
98 *WARNING
99 *EXECUTABLE_NAME
d57fa8b6 100 *OSNAME
8990e307
LW
101);
102
fb73857a 103# The ground of all being. @ARG is deprecated (5.005 makes @_ lexical)
8990e307 104
8990e307
LW
105 *ARG = *_ ;
106
107# Matching.
108
748a9306
LW
109 *MATCH = *& ;
110 *PREMATCH = *` ;
111 *POSTMATCH = *' ;
112 *LAST_PAREN_MATCH = *+ ;
8990e307
LW
113
114# Input.
115
748a9306
LW
116 *INPUT_LINE_NUMBER = *. ;
117 *NR = *. ;
118 *INPUT_RECORD_SEPARATOR = */ ;
119 *RS = */ ;
8990e307
LW
120
121# Output.
122
748a9306
LW
123 *OUTPUT_AUTOFLUSH = *| ;
124 *OUTPUT_FIELD_SEPARATOR = *, ;
125 *OFS = *, ;
126 *OUTPUT_RECORD_SEPARATOR = *\ ;
127 *ORS = *\ ;
8990e307
LW
128
129# Interpolation "constants".
130
748a9306
LW
131 *LIST_SEPARATOR = *" ;
132 *SUBSCRIPT_SEPARATOR = *; ;
133 *SUBSEP = *; ;
8990e307
LW
134
135# Formats
136
748a9306
LW
137 *FORMAT_PAGE_NUMBER = *% ;
138 *FORMAT_LINES_PER_PAGE = *= ;
139 *FORMAT_LINES_LEFT = *- ;
140 *FORMAT_NAME = *~ ;
141 *FORMAT_TOP_NAME = *^ ;
142 *FORMAT_LINE_BREAK_CHARACTERS = *: ;
143 *FORMAT_FORMFEED = *^L ;
8990e307
LW
144
145# Error status.
146
748a9306 147 *CHILD_ERROR = *? ;
4318d5a0
GB
148 *OS_ERROR = *! ;
149 *ERRNO = *! ;
f86702cc 150 *EXTENDED_OS_ERROR = *^E ;
748a9306 151 *EVAL_ERROR = *@ ;
8990e307
LW
152
153# Process info.
154
748a9306
LW
155 *PROCESS_ID = *$ ;
156 *PID = *$ ;
157 *REAL_USER_ID = *< ;
158 *UID = *< ;
159 *EFFECTIVE_USER_ID = *> ;
160 *EUID = *> ;
161 *REAL_GROUP_ID = *( ;
162 *GID = *( ;
163 *EFFECTIVE_GROUP_ID = *) ;
164 *EGID = *) ;
165 *PROGRAM_NAME = *0 ;
8990e307
LW
166
167# Internals.
168
748a9306
LW
169 *PERL_VERSION = *] ;
170 *ACCUMULATOR = *^A ;
305aace0 171 *COMPILING = *^C ;
748a9306
LW
172 *DEBUGGING = *^D ;
173 *SYSTEM_FD_MAX = *^F ;
174 *INPLACE_EDIT = *^I ;
175 *PERLDB = *^P ;
176 *BASETIME = *^T ;
177 *WARNING = *^W ;
178 *EXECUTABLE_NAME = *^X ;
d57fa8b6 179 *OSNAME = *^O ;
8990e307
LW
180
181# Deprecated.
182
748a9306
LW
183# *ARRAY_BASE = *[ ;
184# *OFMT = *# ;
185# *MULTILINE_MATCHING = ** ;
8990e307
LW
186
1871;