NAME
Syntax::Keyword::Inplace - syntax for making inplace changes to
variables
SYNOPSIS
use Syntax::Keyword::Inplace;
my $var = "some value here";
inplace uc $var; # equivalent to $var = uc $var;
print $var; # prints "SOME VALUE HERE"
DESCRIPTION
This module provides a syntax plugin that implements a single keyword,
inplace, which acts on function calls (or function-like perl operators)
to make them modify the target expression.
Perl has a large number of function-like operators that look at a
single expression argument and return some new value based on it.
Sometimes the result of calling one of these is immediately assigned
back into the same variable again, in code that looks like $var =
func($var). It is for these situations where this module is intended to
apply.
KEYWORDS
inplace
inplace FUNC( EXPR )
The inplace keyword modifies the behaviour of the following expression,
which must be a function call or function-like core perl operator,
which takes exactly one argument. That single argument must be valid as
an lvalue (i.e. the target of an assignment). At runtime the function
is called on that argument expression and the result of the function
call is stored back into that expression.
my $var = ...;
inplace foo( $var ); # equivalent to $var = foo( $var )
If the expression is more complex than a single variable directly, then
any side-effects involved in generating it only happen once.
inplace foo( $hash{some_function_call()} );
# equivalent to
# my $tmp_key = some_function_call();
# $hash{$tmp_key} = foo( $hash{$tmp_key} );
AUTHOR
Paul Evans <leonerd@leonerd.org.uk>