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=cut 31 32local $^W = 0; 33 34# Grandfather $NAME import 35sub import { 36 my $this = shift; 37 my @list = @_; 38 local $Exporter::ExportLevel = 1; 39 Exporter::import($this,grep {s/^\$/*/} @list); 40} 41 42@EXPORT = qw( 43 *ARG 44 *MATCH 45 *PREMATCH 46 *POSTMATCH 47 *LAST_PAREN_MATCH 48 *INPUT_LINE_NUMBER 49 *NR 50 *INPUT_RECORD_SEPARATOR 51 *RS 52 *OUTPUT_AUTOFLUSH 53 *OUTPUT_FIELD_SEPARATOR 54 *OFS 55 *OUTPUT_RECORD_SEPARATOR 56 *ORS 57 *LIST_SEPARATOR 58 *SUBSCRIPT_SEPARATOR 59 *SUBSEP 60 *FORMAT_PAGE_NUMBER 61 *FORMAT_LINES_PER_PAGE 62 *FORMAT_LINES_LEFT 63 *FORMAT_NAME 64 *FORMAT_TOP_NAME 65 *FORMAT_LINE_BREAK_CHARACTERS 66 *FORMAT_FORMFEED 67 *CHILD_ERROR 68 *OS_ERROR 69 *ERRNO 70 *EXTENDED_OS_ERROR 71 *EVAL_ERROR 72 *PROCESS_ID 73 *PID 74 *REAL_USER_ID 75 *UID 76 *EFFECTIVE_USER_ID 77 *EUID 78 *REAL_GROUP_ID 79 *GID 80 *EFFECTIVE_GROUP_ID 81 *EGID 82 *PROGRAM_NAME 83 *PERL_VERSION 84 *ACCUMULATOR 85 *DEBUGGING 86 *SYSTEM_FD_MAX 87 *INPLACE_EDIT 88 *PERLDB 89 *BASETIME 90 *WARNING 91 *EXECUTABLE_NAME 92 *OSNAME 93); 94 95# The ground of all being. @ARG is deprecated (5.005 makes @_ lexical) 96 97 *ARG = *_ ; 98 99# Matching. 100 101 *MATCH = *& ; 102 *PREMATCH = *` ; 103 *POSTMATCH = *' ; 104 *LAST_PAREN_MATCH = *+ ; 105 106# Input. 107 108 *INPUT_LINE_NUMBER = *. ; 109 *NR = *. ; 110 *INPUT_RECORD_SEPARATOR = */ ; 111 *RS = */ ; 112 113# Output. 114 115 *OUTPUT_AUTOFLUSH = *| ; 116 *OUTPUT_FIELD_SEPARATOR = *, ; 117 *OFS = *, ; 118 *OUTPUT_RECORD_SEPARATOR = *\ ; 119 *ORS = *\ ; 120 121# Interpolation "constants". 122 123 *LIST_SEPARATOR = *" ; 124 *SUBSCRIPT_SEPARATOR = *; ; 125 *SUBSEP = *; ; 126 127# Formats 128 129 *FORMAT_PAGE_NUMBER = *% ; 130 *FORMAT_LINES_PER_PAGE = *= ; 131 *FORMAT_LINES_LEFT = *- ; 132 *FORMAT_NAME = *~ ; 133 *FORMAT_TOP_NAME = *^ ; 134 *FORMAT_LINE_BREAK_CHARACTERS = *: ; 135 *FORMAT_FORMFEED = *^L ; 136 137# Error status. 138 139 *CHILD_ERROR = *? ; 140 *OS_ERROR = *! ; 141 *ERRNO = *! ; 142 *EXTENDED_OS_ERROR = *^E ; 143 *EVAL_ERROR = *@ ; 144 145# Process info. 146 147 *PROCESS_ID = *$ ; 148 *PID = *$ ; 149 *REAL_USER_ID = *< ; 150 *UID = *< ; 151 *EFFECTIVE_USER_ID = *> ; 152 *EUID = *> ; 153 *REAL_GROUP_ID = *( ; 154 *GID = *( ; 155 *EFFECTIVE_GROUP_ID = *) ; 156 *EGID = *) ; 157 *PROGRAM_NAME = *0 ; 158 159# Internals. 160 161 *PERL_VERSION = *] ; 162 *ACCUMULATOR = *^A ; 163 *DEBUGGING = *^D ; 164 *SYSTEM_FD_MAX = *^F ; 165 *INPLACE_EDIT = *^I ; 166 *PERLDB = *^P ; 167 *BASETIME = *^T ; 168 *WARNING = *^W ; 169 *EXECUTABLE_NAME = *^X ; 170 *OSNAME = *^O ; 171 172# Deprecated. 173 174# *ARRAY_BASE = *[ ; 175# *OFMT = *# ; 176# *MULTILINE_MATCHING = ** ; 177 1781; 179