NAME
Object::Tap - Tap into a series of method calls to alter an object
SYNOPSIS
Instead of writing -
my
$thing
= My::Class->new(...);
$thing
->set_foo(1);
you can instead write -
use
Object::Tap;
my
$thing
= My::Class->new(...)->
$_tap
(
sub
{
$_
[0]->set_foo(1) });
We also alias $_ to $_[0] within the subroutine so:
my
$thing
= My::Class->new(...)->
$_tap
(
sub
{
$_
->set_foo(1) });
also works.
To realise why this might be useful, consider instead -
My::App->new(...)->
$_tap
(...)->run;
where a variable is thereby not required at all.
You can also pass extra args -
$obj
->
$_tap
(
sub
{
warn
"Got arg: $_[1]"
},
'arg'
);
or use a method name instead of a sub ref -
my
$thing
= My::Class->new(...)->
$_tap
(
set_foo
=> 1);
For a 'real' example of how that might be used, one could create and initialize an HTML::TableExtract object in one go using -
my
$te
= HTML::TableExtract->new->
$_tap
(
parse
=>
$html
);
AUTHOR
mst - Matt S. Trout (cpan:MSTROUT) <mst@shadowcat.co.uk>
CONTRIBUTORS
None yet. Well volunteered? :)
COPYRIGHT
Copyright (c) 2014 the Object::Tap "AUTHOR" and "CONTRIBUTORS" as listed above.
LICENSE
This library is free software and may be distributed under the same terms as perl itself.