NAME Block::NamedVar - Replacements for map, grep with named block variables. DESCRIPTION Gives you nmap and ngrep which are new keywords that let you do a map or grep. The difference is you can name the block variable instead of relying on $_. You can also turn custom map/grep like functions into keywords that act like nmap and ngrep. SYNOPSIS #!/usr/bin/perl use strict; use warnings; use Block::NamedVar qw/nmap ngrep/; my @stuff = qw/a 1 b 2 c 3/ my ( @list, $count ); # grep with lexical $x. @list = ngrep my $x { $x =~ m/^[a-zA-Z]$/ } @stuff; # map with lexical $x @list = nmap my $x { "updated_$x" } @stuff; # grep with package variable $v $count = ngrep our $v { $v =~ m/^[a-zA-Z]$/ } @stuff; # grep with closure over existing $y my $y; $count = ngrep $y { $y =~ m/^[a-zA-Z]$/ } @stuff; # Shortcut for lexical variable # must be bareword. $count = ngrep thing { $thing =~ m/^[a-zA-Z]$/ } @stuff; EXPORTED FUNCTIONS @out = nmap var { $var ... } @list @out = nmap $var { $var ... } @list @out = nmap my $var { $var ... } @list @out = nmap our $var { $var ... } @list Works just like map except you specify a variable instead of using $_. @out = ngrep var { $var ... } @list @out = ngrep $var { $var ... } @list @out = ngrep my $var { $var ... } @list @out = ngrep our $var { $var ... } @list Works just like grep except you specify a variable instead of using $_. AUTHORS Chad Granum exodist7@gmail.com COPYRIGHT Copyright (C) 2010 Chad Granum Block-NamedVar is free software; Standard perl licence. Block-NamedVar is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details.