The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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

true BLOCK LIST

false BLOCK LIST

firstidx BLOCK LIST

first_index BLOCK LIST

lastidx BLOCK LIST

last_index 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

firstval BLOCK LIST

first_value BLOCK LIST

lastval BLOCK LIST

last_value 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

mesh

zip

part BLOCK LIST

bsearch BLOCK LIST

This function is available only when List::MoreUtils 0.23 or newer is used.

Unlike the original bsearch, the value to compare with is passed in $_[0]. Template::Toolkit uses eval to evaluate the perl code declared there and don't pass $_ (which sounds reasonable to me).

INSTALL

To install this module, use

  perl Build.PL
  ./Build
  ./Build test
  ./Build install

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.

SUPPORT

Free support can be requested via regular CPAN bug-tracking system. There is no guaranteed reaction time or solution time. It depends on business load. That doesn't mean that ticket via rt aren't handles as soon as possible, that means that soon depends on how much I have to do.

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

AUTHOR

    Jens Rehsack
    CPAN ID: REHSACK
    rehsack@cpan.org
    http://search.cpan.org/~rehsack/

COPYRIGHT

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.

SEE ALSO

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