NAME¶
Devel::REPL::Plugin::OutputCache - remember past results, _ is most recent
SYNOPSIS¶
> 21 / 7
3
> _ * _
9
> sub { die "later" }
sub { die "later" }
> _->()
Runtime error: later
DESCRIPTION¶
Re-using results is very useful when working in a REPL. With
"OutputCache" you get "_", which holds the past result.
The benefit is that you can build up your result instead of having to type it
in all at once, or store it in intermediate variables. "OutputCache"
also provides "$_REPL->output_cache", an array reference of all
results in this session.
Devel::REPL already has a similar plugin, Devel::REPL::Plugin::History. There
are some key differences though:
- Input vs Output
- "History" remembers input.
"OutputCache" remembers output.
- Munging vs Pure Perl
- "History" performs regular expressions on your
input. "OutputCache" provides the "_" sub as a hook to
get the most recent result, and "$_REPL->output_cache" for
any other results.
- Principle of Least Surprise
- "History" will replace exclamation points in any
part of the input. This is problematic if you accidentally include one in
a string, or in a "not" expression. "OutputCache" uses
a regular (if oddly named) subroutine so Perl does the parsing -- no
surprises.
CAVEATS¶
The "_" sub is shared across all packages. This means that if a module
is using the "_" sub, then there is a conflict and you should not
use this plugin. For example, Jifty uses the "_" sub for
localization. Jifty is the only known user.
SEE ALSO¶
"Devel::REPL", "Devel::REPL::Plugin::History"
AUTHOR¶
Shawn M Moore, "<sartak at gmail dot com>"
COPYRIGHT AND LICENSE¶
Copyright (C) 2007 by Shawn M Moore
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.