Sort::Key::Types - handle Sort::Key data types
SYNOPSIS
register_type(
Color
=>
sub
{
$_
->R,
$_
->G,
$_
->B },
qw(int, int, int)
);
# you better
# use Sort::Key::Register ...
DESCRIPTION
The Sort::Key family of modules can be extended to support new key types using this module (or the more friendly Sort::Key::Register).
FUNCTIONS
The following functions are provided:
- Sort::Key::register_type($name, \&gensubkeys, @subkeystypes)
-
registers a new datatype named
$name
defining how to convert it to a multi-key.&gensubkeys
should convert the object of type$name
passed on$_
to a list of values composing the multi-key.@subkeystypes
is the list of types for the generated multi-keys.For instance:
Sort::Key::Types::register_type
'Person'
,
sub
{
$_
->surname,
$_
->name,
$_
->middlename },
qw(str str str)
;
Sort::Key::Types::register_type
'Color'
,
sub
{
$_
->R,
$_
->G,
$_
->B },
qw(int int int)
;
Once a datatype has been registered it can be used in the same way as types supported natively, even for defining new types, i.e.:
Sort::Key::Types::register_type
'Family'
,
sub
{
$_
->father,
$_
->mother },
qw(Person Person)
;
SEE ALSO
Sort::Key, Sort::Key::Merger, Sort::Key::Register.
COPYRIGHT AND LICENSE
Copyright (C) 2005-2007, 2014 by Salvador Fandiño, <sfandino@yahoo.com>.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.4 or, at your option, any later version of Perl 5 you may have available.