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.