---
name: "Sort::Key::Types"
section: "3pm"
platform: "linux"
package: "perl-sort-key"
version: "1.33-16"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Sort::Key::Types"
---

# Sort::Key::Types(3pm)

## Sort::Key::Types - handle Sort::Key data types

## SYNOPSIS

```
  use Sort::Key::Types qw(register_type);
  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.
