-
-
23 Dec 2017 20:18:13 UTC
- Distribution: List-Categorize
- Module version: 0.04
- Source (raw)
- Browse (raw)
- Changes
- How to Contribute
- Repository
- Issues (0)
- Testers (866 / 0 / 0)
- Kwalitee
Bus factor: 1- 98.00% Coverage
- License: artistic_2
- Perl: v5.6.1
- Activity
24 month- Tools
- Download (9.11KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
- Dependencies
- unknown
- Reverse dependencies
- CPAN Testers List
- Dependency graph
- NAME
- VERSION
- SYNOPSIS
- DESCRIPTION
- EXPORT
- SUBROUTINES
- SEE ALSO
- AUTHOR
- BUGS
- SUPPORT
- COPYRIGHT & LICENSE
NAME
List::Categorize - Categorize list items into a tree of named sublists
VERSION
This documentation describes List::Categorize version 0.04.
SYNOPSIS
use List::Categorize qw(categorize); my %odds_and_evens = categorize { $_ % 2 ? 'ODD' : 'EVEN' } (1..9); # %odds_and_evens now contains # ( ODD => [ 1, 3, 5, 7, 9 ], EVEN => [ 2, 4, 6, 8 ] ) my %capitalized = categorize { # Transform the element before placing it in the tree. $_ = ucfirst $_; # Use the first letter of the element as the first-level category, # then the first 2 letters as a second-level category substr($_, 0, 1), substr($_, 0, 2); } qw( apple banana antelope bear canteloupe coyote ananas ); # %capitalized now contains # ( # A => { An => ['Antelope', 'Ananas'], Ap => ['Apple'], }, # B => { Ba => ['Banana'], Be => ['Bear'], }, # C => { Ca => ['Canteloupe'], Co => ['Coyote'] }, # )
DESCRIPTION
A simple module that creates a tree by applying a specified rule to each element of a provided list.
EXPORT
Nothing by default.
SUBROUTINES
categorize BLOCK LIST
my %tree = categorize { $_ > 10 ? 'Big' : 'Little' } @list;
categorize
creates a tree by running BLOCK for each element in LIST. The block should return a list of "categories" for the current element, i.e a list of scalar values corresponding to the sequence of subtrees under which this element will be placed. If the block returns an empty list, or a list containing anundef
, the corresponding element is not placed in the resulting tree.The resulting tree contains a key for each top-level category. Values are either references to subtrees, or references to arrayrefs of elements (depending on the depth of the categorization).
Within the block, $_ refers to the current list element. Elements can be modified before they're placed in the target tree by modifying the $_ variable:
my %tree = categorize { $_ = uc $_; 'List' } qw( one two three ); # %tree now contains ( List => [ 'ONE', 'TWO', 'THREE' ] )
NOTE: The categorizer should return a list of strings, or
undef
. Other values are reserved for future use, and may cause unpredictable results in the current version. When using multi-level categorization, the categorizer should always return the same number of keys.SEE ALSO
Previous versions of this module only handled one-level categorization, while multi-level categorization was implemented in List::Categorize::Multi. Now both modules have been merged into List::Categorize, therefore List::Categorize::Multi is deprecated.
AUTHOR
Bill Odom,
<wnodom at cpan.org>
(original author), Laurent Dami,<dami at cpan.org>
(added the multi-level categorization)BUGS
None known.
Please report any bugs or feature requests to
bug-list-categorize at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=List-Categorize.SUPPORT
You can find documentation for this module with the perldoc command.
perldoc List::Categorize
You can also look for information at:
- RT: CPAN's request tracker
- AnnoCPAN: Annotated CPAN documentation
- CPAN Ratings
- Search MetaCPAN
- Github repository
COPYRIGHT & LICENSE
Copyright (c) 2009 Bill Odom, 2017 Laurent Dami.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl 5.10.0. For more details, see the full text of the licenses at http://www.perlfoundation.org/artistic_license_2_0, and http://www.gnu.org/licenses/gpl-2.0.html.
This program 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.
Module Install Instructions
To install List::Categorize, copy and paste the appropriate command in to your terminal.
cpanm List::Categorize
perl -MCPAN -e shell install List::Categorize
For more information on module installation, please visit the detailed CPAN module installation guide.