X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FEnglish.pm;h=ce4520a89118b1509a8ab2133c876626e79c48e0;hb=f4ae0f5e14d1459d62e647fa88facfcf715d1fcf;hp=b203721a52fa2ee8a62c13df0c7b50242fc4aacc;hpb=a0d0e21ea6ea90a22318550944fe6cb09ae10cda;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/English.pm b/lib/English.pm index b203721..ce4520a 100644 --- a/lib/English.pm +++ b/lib/English.pm @@ -3,59 +3,93 @@ package English; require Exporter; @ISA = (Exporter); -local($^W) = 0; +=head1 NAME + +English - use nice English (or awk) names for ugly punctuation variables + +=head1 SYNOPSIS + + use English; + ... + if ($ERRNO =~ /denied/) { ... } + +=head1 DESCRIPTION + +This module provides aliases for the built-in variables whose +names no one seems to like to read. Variables with side-effects +which get triggered just by accessing them (like $0) will still +be affected. + +For those variables that have an B version, both long +and short English alternatives are provided. For example, +the C<$/> variable can be referred to either $RS or +$INPUT_RECORD_SEPARATOR if you are using the English module. + +See L for a complete list of these. + +=cut + +local $^W = 0; + +# Grandfather $NAME import +sub import { + my $this = shift; + my @list = @_; + local $Exporter::ExportLevel = 1; + Exporter::import($this,grep {s/^\$/*/} @list); +} @EXPORT = qw( *ARG - $MATCH - $PREMATCH - $POSTMATCH - $LAST_PAREN_MATCH - $INPUT_LINE_NUMBER - $NR - $INPUT_RECORD_SEPARATOR - $RS - $OUTPUT_AUTOFLUSH - $OUTPUT_FIELD_SEPARATOR - $OFS - $OUTPUT_RECORD_SEPARATOR - $ORS - $LIST_SEPARATOR - $SUBSCRIPT_SEPARATOR - $SUBSEP - $FORMAT_PAGE_NUMBER - $FORMAT_LINES_PER_PAGE - $FORMAT_LINES_LEFT - $FORMAT_NAME - $FORMAT_TOP_NAME - $FORMAT_LINE_BREAK_CHARACTERS - $FORMAT_FORMFEED - $CHILD_ERROR - $OS_ERROR - $ERRNO - $EVAL_ERROR - $PROCESS_ID - $PID - $REAL_USER_ID - $UID - $EFFECTIVE_USER_ID - $EUID - $REAL_GROUP_ID - $GID - $EFFECTIVE_GROUP_ID - $EGID - $PROGRAM_NAME - $PERL_VERSION - $DEBUGGING - $SYSTEM_FD_MAX - $INPLACE_EDIT - $PERLDB - $BASETIME - $WARNING - $EXECUTABLE_NAME - $ARRAY_BASE - $OFMT - $MULTILINE_MATCHING + *MATCH + *PREMATCH + *POSTMATCH + *LAST_PAREN_MATCH + *INPUT_LINE_NUMBER + *NR + *INPUT_RECORD_SEPARATOR + *RS + *OUTPUT_AUTOFLUSH + *OUTPUT_FIELD_SEPARATOR + *OFS + *OUTPUT_RECORD_SEPARATOR + *ORS + *LIST_SEPARATOR + *SUBSCRIPT_SEPARATOR + *SUBSEP + *FORMAT_PAGE_NUMBER + *FORMAT_LINES_PER_PAGE + *FORMAT_LINES_LEFT + *FORMAT_NAME + *FORMAT_TOP_NAME + *FORMAT_LINE_BREAK_CHARACTERS + *FORMAT_FORMFEED + *CHILD_ERROR + *OS_ERROR + *ERRNO + *EXTENDED_OS_ERROR + *EVAL_ERROR + *PROCESS_ID + *PID + *REAL_USER_ID + *UID + *EFFECTIVE_USER_ID + *EUID + *REAL_GROUP_ID + *GID + *EFFECTIVE_GROUP_ID + *EGID + *PROGRAM_NAME + *PERL_VERSION + *ACCUMULATOR + *DEBUGGING + *SYSTEM_FD_MAX + *INPLACE_EDIT + *PERLDB + *BASETIME + *WARNING + *EXECUTABLE_NAME + *OSNAME ); # The ground of all being. @@ -64,79 +98,81 @@ local($^W) = 0; # Matching. - *MATCH = \$& ; - *PREMATCH = \$` ; - *POSTMATCH = \$' ; - *LAST_PAREN_MATCH = \$+ ; + *MATCH = *& ; + *PREMATCH = *` ; + *POSTMATCH = *' ; + *LAST_PAREN_MATCH = *+ ; # Input. - *INPUT_LINE_NUMBER = \$. ; - *NR = \$. ; - *INPUT_RECORD_SEPARATOR = \$/ ; - *RS = \$/ ; + *INPUT_LINE_NUMBER = *. ; + *NR = *. ; + *INPUT_RECORD_SEPARATOR = */ ; + *RS = */ ; # Output. - *OUTPUT_AUTOFLUSH = \$| ; - *OUTPUT_FIELD_SEPARATOR = \$, ; - *OFS = \$, ; - *OUTPUT_RECORD_SEPARATOR = \$\ ; - *ORS = \$\ ; + *OUTPUT_AUTOFLUSH = *| ; + *OUTPUT_FIELD_SEPARATOR = *, ; + *OFS = *, ; + *OUTPUT_RECORD_SEPARATOR = *\ ; + *ORS = *\ ; # Interpolation "constants". - *LIST_SEPARATOR = \$" ; - *SUBSCRIPT_SEPARATOR = \$; ; - *SUBSEP = \$; ; + *LIST_SEPARATOR = *" ; + *SUBSCRIPT_SEPARATOR = *; ; + *SUBSEP = *; ; # Formats - *FORMAT_PAGE_NUMBER = \$% ; - *FORMAT_LINES_PER_PAGE = \$= ; - *FORMAT_LINES_LEFT = \$- ; - *FORMAT_NAME = \$~ ; - *FORMAT_TOP_NAME = \$^ ; - *FORMAT_LINE_BREAK_CHARACTERS = \$: ; - *FORMAT_FORMFEED = \$^L ; + *FORMAT_PAGE_NUMBER = *% ; + *FORMAT_LINES_PER_PAGE = *= ; + *FORMAT_LINES_LEFT = *- ; + *FORMAT_NAME = *~ ; + *FORMAT_TOP_NAME = *^ ; + *FORMAT_LINE_BREAK_CHARACTERS = *: ; + *FORMAT_FORMFEED = *^L ; # Error status. - *CHILD_ERROR = \$? ; - *OS_ERROR = \$! ; - *ERRNO = \$! ; - *EVAL_ERROR = \$@ ; + *CHILD_ERROR = *? ; + *OS_ERROR = *! ; + *EXTENDED_OS_ERROR = *^E ; + *ERRNO = *! ; + *EVAL_ERROR = *@ ; # Process info. - *PROCESS_ID = \$$ ; - *PID = \$$ ; - *REAL_USER_ID = \$< ; - *UID = \$< ; - *EFFECTIVE_USER_ID = \$> ; - *EUID = \$> ; - *REAL_GROUP_ID = \$( ; - *GID = \$( ; - *EFFECTIVE_GROUP_ID = \$) ; - *EGID = \$) ; - *PROGRAM_NAME = \$0 ; + *PROCESS_ID = *$ ; + *PID = *$ ; + *REAL_USER_ID = *< ; + *UID = *< ; + *EFFECTIVE_USER_ID = *> ; + *EUID = *> ; + *REAL_GROUP_ID = *( ; + *GID = *( ; + *EFFECTIVE_GROUP_ID = *) ; + *EGID = *) ; + *PROGRAM_NAME = *0 ; # Internals. - *PERL_VERSION = \$] ; - *ACCUMULATOR = \$^A ; - *DEBUGGING = \$^D ; - *SYSTEM_FD_MAX = \$^F ; - *INPLACE_EDIT = \$^I ; - *PERLDB = \$^P ; - *BASETIME = \$^T ; - *WARNING = \$^W ; - *EXECUTABLE_NAME = \$^X ; + *PERL_VERSION = *] ; + *ACCUMULATOR = *^A ; + *DEBUGGING = *^D ; + *SYSTEM_FD_MAX = *^F ; + *INPLACE_EDIT = *^I ; + *PERLDB = *^P ; + *BASETIME = *^T ; + *WARNING = *^W ; + *EXECUTABLE_NAME = *^X ; + *OSNAME = *^O ; # Deprecated. -# *ARRAY_BASE = \$[ ; -# *OFMT = \$# ; -# *MULTILINE_MATCHING = \$* ; +# *ARRAY_BASE = *[ ; +# *OFMT = *# ; +# *MULTILINE_MATCHING = ** ; 1;