The Perl Advent Calendar needs more articles for 2022. Submit your idea today!
0.2: Test added.
0.3: Filehandles changed to \* from *, MinLine works, works with
0.4: Some bugs with $| corrected. Application name is set. Works under
OS/2 without ReadKey. Should work under DOS with minimal changes (see
$inDOS in ReadLine/
0.5: Code to support ReadLine'less debugger moved to debugger. One
user reported that having .inputrc triggers the same bug that buggered
earlier versions of the package. Request for a second readline is
tried to be executed first, dying only if should work on a different terminal.
0.6: The above bug was due to missing vi keymap. Dirty workaround
0.7: We made ReadMode on term_OUT ;-(
     Better workaround for return of globs from a sub.
     Word break chars more suitable for Perl.
0.8: Insert, Operate, HistorySearch added.
     Rudimental support for tk being active during ReadLine.
     Should work better if ReadKey is present, but did not bootstrap.
     SelfLoader (and AutoLoader) supported (uncomment the lines
	with SelfLoader, ISA, and __DATA__).
0.9: tkRunning corrected. New attributes in Features: getHistory,
	setHistory, and new methods: GetHistory and SetHistory.

After 0.9:
	Optional second argument to ->readline;
	[sg]etHistory, tkRunning features documented;
	Operate overwriting parameter fixed;
	AddHistory copied to addhistory in T::R::Perl;
	[SG]etHistory documented;
	tkRunning feature documented.
	eval "" => eval {}
	local => my
After 0.91:
	Couple of bugs with my $var = @_;
	use SelfLoader; moved to DATA.
	Works in XTERM on OS/2.
	Updates to Operate, couple of keybindings added.
	$rl_completer_terminator_character, $rl_correct_sw added.
	Reload-init-file moved to C-x C-x.
	C-x ? and C-x * list/insert possible completions (similar to
		tcsh globbing).
	For a second ReadLine interface ReadLine::Stub is used (unsuccessfully)?
	C-x * moves cursor correctly.
	Should work everywhere where stty works (possibly with a warning).
	Warning says where to find TRK, switchable off. removed from distribution.
		(from Jim Meyering):
	* (preinit): Recognize bash's `input-meta' as a
	valid variable name.
	(F_ReReadInitFile): Recognize key binding directives in which
	the double-quoted RHS contains white space.
	(rl_set): Treat bash's `visible-stats' as a synonym of
	Workaround against Term::ReadKey::ReadMode returning undef
		(thanks to Helmut Jarausch).
	tkRunning support unrolled, now needs newer Term/ to use it.
	Warnings from inputrc come only if -w.
	Wrong version of was included, did not work with older Perls.
	newTTY added.
	ornaments added.
	no longer installs into PERL dirs.
	Name of interface is now Term::ReadLine::Perl.
	Meta-flag tolerated (thanks to Honza Pazdziora).
	Bindings to \C-letter work again.
	Buglet with -w corrected.
	Support for ornaments busted editing of long lines.
	Do not test TRL::Gnu in!
	Allow control-? in assignments.  \M-\C- should work, as well as \x7F.
	(Thanks to Neil Bird!)
	Enable ornaments by default.
	Disable explicit ornaments in the
0.9904: (thanks to Alexander Kourakos <>)
        gave warnings for blank lines in my .inputrc
        showed underlined spaces in prompts (in xterm) which look ugly.
0.9905: (thanks to Wilson P. Snyder II
	Fix reverse search.
0.9906: $readline::rl_getc added with the default value \&readline::rl_getc
0.9907: remove defined() noise.
0.9908: support $ENV{INPUTRC}.
	Advice users to look into *this* file for features...
	Joe.Petolino@Eng.Sun.COM added vi support (untested).
	Remove .gz-ness from Makefile.PL.
1.00:	Ignore $/, $\, $,.
	Handle $include in RC file (by Roland Walker and Alexander Kourakos).
	Support "unsupported ioctl()".
	$rl_vi_replace_default_on_insert (by Russ Southern).
	Now we closely match the new syntax of .inputrc (by David Wollmann).
	Allow setenv PERL_RL_USE_TRK=0 to disable usage of Term::ReadKey.
	With $inDOS vicmd_map had conflicting definitions for #27.
	Removed spurious warnings from failing ioctl and stty.
1.01:	Allow unset TERM.
	Wrong display and warnings if UP/DOWN reach a short line from a
		scrolled line
	Highlight the h-scroll indicators "<" ">" same as the prompt.
	Draw h-scroll indicator "<" even if a part of the prompt is shown.
	Scroll right if more than $rl_margin empty space is on the right.
1.02:	Move reread-init to C-x C-r.  Make C-x u and C-x C-u do undo.
	Set-mark:			C-@, Control-Space on PC.
	Exchange-point-and-mark:	C-x C-x.
	Kill-region:			C-x C-w (as in lynx).
	Copy-region-as-kill:		C-x w   (kinda similar to Emacs).
	On PC, the last 2 and yank also available on Shift-Del, Control-Insert,
	Kill buffer is prepended or appended in natural manner.
	Disable detection of Japanese multibyte characters - conflicts with
		single-byte scripts.  Reenable by $readline::_rl_japanese_mb = 1.
1.0201:	Warnings due to a misprint fixed (thanks to Tatsuhiko Miyagawa).
1.0202:	Warnings on highlight of the right scroll mark '<' fixed
	(thanks to Slaven Rezic).
1.0203:	Unconditional titlecasing of .inputrc "values" broke settings with
	values such as 'vi' etc (thanks to Russ Southern for a report).

1.0204:	Applied patches from Gurusamy and Slaven for vi mode:
		Logic to move insertion point one char back was wrong;
		Disable (YES!) choice of vi-mode based on $ENV{EDITOR}.
	Just in case: generate proper warning if an old $ket-bug resurrects.
	If readkey() returns undef, behave as on EOF.
	New option --no-print to
	Try to move prompt to the next line if something is already on the
 		current line (controlled by $rl_scroll_nextline, 
		Wrong setting of $rl_last_pos_can_backspace will result:
			a) 1 and wrong: empty line before the prompt;
			b) 0 and wrong: if the line contains 1 char only,
				(and no NL), the prompt will overwrite it;
				test with `perl -Mblib --no-print',
				type `print 1'.
			[This is not the same as termcap/am!].
	New variable $readline::rl_default_selected; if true, default string
		is removed if the first keystroke is self-insert or BackSpace; modified to test this too;
		uses mr,me capabilities to highlight the default string.
	New command: SaveLine (on M-#).
	New command: PrintHistory (on M-h),
	PreviousHistory and NextHistory take count.
	The edited line is saved when one moves to history.
1.0205: Do not touch $ENV{HOME} unless defined.
	$ENV{AUTOMATED_TESTING} to skip interactive tests.
1.0206: Shift-Ins, Control-Ins, Shift-Del operate on clipboard (if available)
		(currently native on OS/2 only, otherwise uses commands
	  In absense of mark, CopyRegionAsKillClipboard operates
	    on the whole line
	Completely ignore unknown variables in .inputrc.
	Moving cursor should remove the highlight of initial string too.
	Change some local() to my().
	Region between point and mark is highlighted.
	Commands SelfInsert, Yank*, *DeleteChar remove this region
		if $rl_delete_selection is TRUE (default).
			(Set mark again to insert without removing.)
1.0207:	If mark was active, redraw could be performed after Enter.
	Untested Win32 support for cut&paste.
	Alias $var_DeleteSelection for $rl_delete_selection (thus accessible
		via .inputrc).
1.0208:	Allow 2-arg form for
	Open CONIN$ on Win (if asked for CON), and open RW (bug in Win devdriver).
	Allow non-first Digit-Arguments to be escaped too.
	Allow Alt-char translation to \M-char on DOSISH.
	Apparently, self-loaded empty subroutines crash 5.8.2; 5.8.7 OK.
		Work-around: put "1;" into non-implemented stuff.

1.03:   Support for numeric arguments missed setting $lastcommand.
	MinLine would not return the old value etc.
	On MSWin32 without ReadKey, but with cygwin stty.exe:
		do binmode (since Enter sends \r in these settings)
			(XXXX we don't undo binmode; is it needed?)
			(Only Control-Key work; do "Control-[ key" for Meta)
	When optimizing "cursor" movement, take into account ornaments.
	Optimize "cursor" movement even if we redraw the line.
	Would display the string twice, even if cursor was at the end of
			the line.
	Add key binding for Control-Movement keys in xterm; and some OSX xterm.
	Do not prefer HPUX xterm bindings to "normal" XTerm bindings.
	New functions F_BeginUndoGroup F_EndUndoGroup F_DoNothing
		F_MemorizeDigitArgument F_ForceMemorizeDigitArgument
		F_UnmemorizeDigitArgument F_ResetDigitArgument
		F_MergeInserts F_MemorizePos
			(for better mouse support; untested)
	Undo list merges together states where the only change is position

1.0301: F_TransposeWords implemented
	Enable binmode() on MSWin32 if ReadMode succeeds.
		Since "normal" getc() returns 0 on "special keys" (as opposed
		to behaviour with reasonable CRT library, which would return
		a pair of keypresses 0 "keynumber"), to access special keys
		one needs something like C-[ for Esc, and C-[ c for Alt-c.
	Support \key with key in "abfnrtvd" in init files (\b/\d as C-?/C-d)
		and \ooo for octal.
	Allow single quotes in macro specifications, and backwacked quotes.
	Support macros (propagate numeric arguments).
	New functions F_BeginPasteGroup; F_EndPasteGroup;
		F_BeginEditGroup; F_EndEditGroup; bound to XTerm mouse editing
	Support ~/ in INPUTRC name and $include;
	New functions F_DoMetaVersion; F_DoControlVersion; bound as in Emacs:
		C-x Esc m and C-x Esc c.
1.0302: C-@ was incorrectly bound to a missing function SetPoint.
	C-x Esc c @ and C-x Esc c Space are now bound to SetMark, so do this
		if $inDOS too.
	Bind C-x @ c and C-x @ m too (as in Emacs).

1.0303: Would not allow macros with space in them.
	Never try to display the whole prompt unless it is shorter than
		screen width ;-).
	Test supports PERL_RL_TEST_PROMPT_MINLEN in environment.
	Test hints at special significance of the word `exit'.
	Avoid a warning on unexpected variable assign (thanks to Robin Barker).
	Change error message for unknown method.
	Protect global variables during WINCH processing.
	F_ReverseSearchHistory was not -w-safe (thanks to Peter Valdemar)
	Test for $ENV{PERL_MM_NONINTERACTIVE} also to abort tests.