1package English; 2 3require Exporter; 4@ISA = (Exporter); 5 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 30=head1 BUGS 31 32This module provokes sizeable inefficiencies for regular expressions, 33due to unfortunate implementation details. If performance matters, 34consider avoiding English. 35 36=cut 37 38no warnings; 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} 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 1941; 195