English module helps you to deal with the confusing variable names, like $^X and $'.
English module associates the odd-named variables with something more understandable. 

Variable     English                    Usage
$^A          $ACCUMULATOR               Current value of write accumulator for format data.
$_           $ARG                       Default input and pattern-searching variable.
$^T          $BASETIME                  Time script began running in time format.
$?           $CHILD_ERROR               Status returned by last pipe close or system function.
$^D          $DEBUGGING                 Current value of Perl's debugging flags.
$)           $EFFECTIVE_GROUP_ID        Effective group ID for the Perl process.
$>           $EFFECTIVE_USER_ID         Effective user ID of process.
$^X          $EXECUTABLE_NAME           Name of Perl binary executable file
$!           $ERRNO                     If numeric context, holds errno result of math function; if string context, holds error message. Also $OS_ERROR.
$@           $EVAL_ERROR                Error message from last eval call.
$^E          $EXTENDED_OS_ERROR         Extended error on various operating systems. On Windows, holds the last error from the Win32 GetLastError() call.
$^L          $FORMAT_FORMFEED           Output to advance a page from write.
$:           $FORMAT_LINE_BREAK_CHARACTERS     Characters allowed to break on when filling continuation fields in a format.
$-           $FORMAT_LINES_LEFT         Number of lines left on current page.
$=           $FORMAT_LINES_PER_PAGE     Total number of lines available on page.
$~           $FORMAT_NAME               Name of current format.
$%           $FORMAT_PAGE_NUMBER        Page number in current format.
$^           $FORMAT_TOP_NAME           Name of top-of-page format.
$.           $INPUT_LINE_NUMBER         Line number in the last file handle that was read.
$/           $INPUT_RECORD_SEPARATOR    Ends a line of text for input, newline on UNIX, carriage return and newline on Windows.
$+           $LAST_PAREN_MATCH          Last bracket matched by last search.
$&           $MATCH                     String matched by last match.
$#           $OFMT                      Output format for numbers printed with print (not using the format command described in Chapter 5). Normally %.20g.
$^O          $OSNAME                    Operating system name.
$|           $OUTPUT_AUTOFLUSH          If non-zero forces a flush with each write or print.
$,           $OUTPUT_FIELD_SEPARATOR    Output field separator.
$\           $OUTPUT_RECORD_SEPARATOR   Output record separator, equivalent of $/ for output.
$^V          $PERL_VERSION              String printed by perl -v; version number.
$'           $POSTMATCH                 String following last match.
$`           $PREMATCH                  String preceding last match.
$$           $PROCESS_ID                The process ID for this script. Also $PID.
$0           $PROGRAM_NAME              Name of current Perl script (zero, not oh).
$(           $REAL_GROUP_ID             Group ID for the Perl process.
$<           $REAL_USER_ID              Real user ID.
$;           $SUBSCRIPT_SEPARATOR       Subscript separator for multi-dimensional arrays.
$^F          $SYSTEM_FD_MAX             Maximum system file descriptor.
$^W          $WARNING                   True if warning is turned on (by perl -w); false otherwise.
