Template::Plugin::ListMoreUtils(3)

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:

•   RT: CPAN's request tracker

    <http://rt.cpan.org/NoAuth/Bugs.html?Dist=Template-Plugin-ListMoreUtils>

•   AnnoCPAN: Annotated CPAN documentation

    <http://annocpan.org/dist/Template-Plugin-ListMoreUtils>

•   CPAN Ratings

    <http://cpanratings.perl.org/d/Template-Plugin-ListMoreUtils>

•   Search CPAN

    <http://search.cpan.org/dist/Template-Plugin-ListMoreUtils/>

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>