NAME

Template::Plugin::ListMoreUtils - TT2 plugin to use List::MoreUtils

SYNOPSIS

[% my1to9even = [ 2, 4, 6, 8 ];
   my1to9prim = [ 2, 3, 5, 7 ];
   my1to9odd  = [ 1, 3, 5, 7, 9 ]; %]

[% USE ListMoreUtils %]
[% my1to9all = ListMoreUtils.uniq( my1to9even.merge( my1to9prim, my1to9odd ) ); %]
1 .. 9 are [% my1to9all.size() %]

DESCRIPTION

This module provides an Template::Toolkit interface to Tassilo von Parseval's List::MoreUtils. It extends the built-in functions dealing with lists as well as Template::Plugin::ListUtil.

USAGE

To use this module from templates, you can choose between class interface

[% my1to9even = [ 2, 4, 6, 8 ];
   my1to9prim = [ 2, 3, 5, 7 ];
   my1to9odd  = [ 1, 3, 5, 7, 9 ]; %]

[% USE ListMoreUtils %]
[% my1to9all = ListMoreUtils.uniq( my1to9even.merge( my1to9prim, my1to9odd ) ); %]
1 .. 9 are [% my1to9all.size() %]

or the virtual method interface, which is described in Template::Plugin::ListMoreUtilsVMethods.

FUNCTIONS PROVIDED

All functions behave as documented in List::MoreUtils. I don't plan to copy the entire POD from there. Template::Toolkit provides lists as list reference, so they were expanded before the appropriate function in List::MoreUtils is called.

any BLOCK LIST

all BLOCK LIST

none BLOCK LIST

notall BLOCK LIST

any_u BLOCK LIST

all_u BLOCK LIST

none_u BLOCK LIST

notall_u BLOCK LIST

true BLOCK LIST

false BLOCK LIST

firstidx BLOCK LIST

first_index BLOCK LIST

lastidx BLOCK LIST

last_index BLOCK LIST

onlyidx BLOCK LIST

only_index BLOCK LIST

firstres BLOCK LIST

first_result BLOCK LIST

lastres BLOCK LIST

last_result BLOCK LIST

onlyres BLOCK LIST

only_result BLOCK LIST

firstval BLOCK LIST

first_value BLOCK LIST

lastval BLOCK LIST

last_value BLOCK LIST

onlyval BLOCK LIST

only_value BLOCK LIST

insert_after BLOCK VALUE LIST

insert_after_string STRING VALUE LIST

apply BLOCK LIST

after BLOCK LIST

after_incl BLOCK LIST

before BLOCK LIST

before_incl BLOCK LIST

indexes BLOCK LIST

pairwise BLOCK LIST LIST

Unlike the original pairwise, both variables are given through @_. Template::Toolkit uses eval to evaluate the perl code declared there and passes neither $a nor $b (which sounds reasonable to me).

minmax LIST

uniq LIST

distinct LIST

singleton LIST

mesh

zip

part BLOCK LIST

bsearch BLOCK LIST

bsearchidx BLOCK LIST

bsearch_index BLOCK LIST

LIMITATION

Except the typical limitations known from perl functions embedded in Template::Toolkit, the only limitation I currently miss is being able to use TT2 defined macros as callback.

BUGS

Please report any bugs or feature requests to bug-Template-Plugin-ListMoreUtils at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Template-Plugin-ListMoreUtils. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Template::Plugin::ListMoreUtils

You can also look for information at:

Business and commercial support should be acquired via preferred freelancer agencies.

LICENSE AND COPYRIGHT

Copyright 2009-2015 Jens Rehsack.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.

SEE ALSO

perl(1), List::MoreUtils, <Template::Plugin::ListUtil>