File::Spec 0.82 beta
[p5sagit/p5-mst-13.2.git] / lib / English.pm
1 package English;
2
3 require Exporter;
4 @ISA = (Exporter);
5
6 =head1 NAME
7
8 English - 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
18 This module provides aliases for the built-in variables whose
19 names no one seems to like to read.  Variables with side-effects
20 which get triggered just by accessing them (like $0) will still 
21 be affected.
22
23 For those variables that have an B<awk> version, both long
24 and short English alternatives are provided.  For example, 
25 the C<$/> variable can be referred to either $RS or 
26 $INPUT_RECORD_SEPARATOR if you are using the English module.
27
28 See L<perlvar> for a complete list of these.
29
30 =head1 BUGS
31
32 This module provokes sizeable inefficiencies for regular expressions,
33 due to unfortunate implementation details.  If performance matters,
34 consider avoiding English.
35
36 =cut
37
38 no warnings;
39
40 # Grandfather $NAME import
41 sub import {
42     my $this = shift;
43     my @list = @_;
44     local $Exporter::ExportLevel = 1;
45     Exporter::import($this,grep {s/^\$/*/} @list);
46 }
47
48 @EXPORT = qw(
49         *ARG
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
76         *EXTENDED_OS_ERROR
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
98         *OSNAME
99         *LAST_REGEXP_CODE_RESULT
100         *EXCEPTIONS_BEING_CAUGHT
101         @LAST_MATCH_START
102         @LAST_MATCH_END
103 );
104
105 # The ground of all being. @ARG is deprecated (5.005 makes @_ lexical)
106
107         *ARG                                    = *_    ;
108
109 # Matching.
110
111         *MATCH                                  = *&    ;
112         *PREMATCH                               = *`    ;
113         *POSTMATCH                              = *'    ;
114         *LAST_PAREN_MATCH                       = *+    ;
115         *LAST_MATCH_START                       = *-{ARRAY} ;
116         *LAST_MATCH_END                         = *+{ARRAY} ;
117
118 # Input.
119
120         *INPUT_LINE_NUMBER                      = *.    ;
121             *NR                                 = *.    ;
122         *INPUT_RECORD_SEPARATOR                 = */    ;
123             *RS                                 = */    ;
124
125 # Output.
126
127         *OUTPUT_AUTOFLUSH                       = *|    ;
128         *OUTPUT_FIELD_SEPARATOR                 = *,    ;
129             *OFS                                = *,    ;
130         *OUTPUT_RECORD_SEPARATOR                = *\    ;
131             *ORS                                = *\    ;
132
133 # Interpolation "constants".
134
135         *LIST_SEPARATOR                         = *"    ;
136         *SUBSCRIPT_SEPARATOR                    = *;    ;
137             *SUBSEP                             = *;    ;
138
139 # Formats
140
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   ;
148
149 # Error status.
150
151         *CHILD_ERROR                            = *?    ;
152         *OS_ERROR                               = *!    ;
153             *ERRNO                              = *!    ;
154         *EXTENDED_OS_ERROR                      = *^E   ;
155         *EVAL_ERROR                             = *@    ;
156
157 # Process info.
158
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    ;
170
171 # Internals.
172
173         *PERL_VERSION                           = *^V   ;
174         *ACCUMULATOR                            = *^A   ;
175         *COMPILING                              = *^C   ;
176         *DEBUGGING                              = *^D   ;
177         *SYSTEM_FD_MAX                          = *^F   ;
178         *INPLACE_EDIT                           = *^I   ;
179         *PERLDB                                 = *^P   ;
180         *LAST_REGEXP_CODE_RESULT                = *^R   ;
181         *EXCEPTIONS_BEING_CAUGHT                = *^S   ;
182         *BASETIME                               = *^T   ;
183         *WARNING                                = *^W   ;
184         *EXECUTABLE_NAME                        = *^X   ;
185         *OSNAME                                 = *^O   ;
186
187 # Deprecated.
188
189 #       *ARRAY_BASE                             = *[    ;
190 #       *OFMT                                   = *#    ;
191 #       *MULTILINE_MATCHING                     = **    ;
192 #       *OLD_PERL_VERSION                       = *]    ;
193
194 1;