---
name: "Sort::Key::Register"
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::Register"
---

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

tell Sort::Key how to sort new data types.

## NAME

Sort::Key::Register - tell Sort::Key how to sort new data types.

## SYNOPSIS

```
  use Sort::Key::Register Person =>
      sub { $_->surname, $_->name },
      qw(string string);
  use Sort::Key::Register 'Color::Component' => 'integer';
  use Sort::Key::Register Color =>
      sub { $_->R, $_->G, $_->B },
      ('Color::Component') x 3;
```

## DESCRIPTION

Sort::Key::Register allows one to register new data types with Sort::Key so that they can be sorted as natively supported ones.

It works as a pragma module and doesn't export any function, all its functionality is provided via `"use"`:

```
  use Sort::Key::Register ...
```

To avoid collisions between modules registering types with the same name, you should qualify them with the package name.

```
  use Sort::Key::Register 'MyPkg::foo' => sub { $_ }, '-int';
  # or using __PACKAGE__:
  use Sort::Key::Register __PACKAGE__, sub { $_ }, '-int';
```

### USAGE

- use Sort::Key::Register $name =\> \\&multikeygen, @keytypes;

  registers type `$name`.

  `&multikeygen` is the multi-key extraction function for the type and `@keytypes` are the types of the extracted keys.

- use Sort::Key::Register $name =\> $keytype;

  this 'use' is useful for simple types that are sorted as another type already registered, maybe changing the direction of the sort (ascending or descending).

## SEE ALSO

Sort::Key, Sort::Key::Maker.

## AUTHOR

Salvador Fandiño, \<sfandino@yahoo.com\>

## COPYRIGHT AND LICENSE

Copyright (C) 2005, 2014 by Salvador Fandiño

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.
