NAME
Keyword::With - provide new syntax to use a 'given' statement without an experimental warning
VERSION
version 0.003
DESCRIPTION
Provide a construct almost identical to `given (...) { }` that evaluates an list expression in scalar context (assigning it to `$_`) then executing a block of code.
NAME
Keyword::With
SYNOPSIS
use Keyword::With;
with (5*3) {
print;
}
or
with ( some_func() ) {
print "matches\n" if grep { m/$_/ } qr/abc/, qr/def/;
print "does not match\n";
}
ADVANTAGES
No experimental warning
DISADVANTAGES
Cannot use builtins that modify `$_` with with blocks because they will clobber the `$_` value set by `with (...) { }`. This was already a disadvantage of given blocks. A reasonable approach would be to create a new lexical variable within the `with` block:
with ( [qw(1 2 3 5 8 13 21)] ) {
my @first_7_fibs = @$_;
my @new_first_7_fibs = map { $_ + 1 } @first_7_fibs;
...
}
AUTHOR
Hunter McMillen <mcmillhj@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2016 by Hunter McMillen.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.