---
name: "Cz::Sort"
section: "3pm"
platform: "linux"
package: "cstocs"
version: "1:3.44-1.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Cz::Sort"
---

# Cz::Sort(3pm)

Czech sort

## NAME

Cz::Sort - Czech sort

## SYNOPSIS

```
        use Cz::Sort;
        my $result = czcmp("_x j&á", "_&p");
        my @sorted = czsort qw(plachta plaňka Plánička plánička pláně);
        print "@sorted\n";
```

## DESCRIPTION

Implements czech sorting conventions, indepentent on current locales in effect, which are often bad. Does the four-pass sort. The idea and the base of the conversion table comes from Petr Olsak's program **csr** and the code is as compliant with CSN 97 6030 as possible.

The basic function provided by this module, is *czcmp*. If compares two scalars and returns the (-1, 0, 1) result. The function can be called directly, like

```
        my $result = czcmp("_x j&á", "_&p");
```

But for convenience and also because of compatibility with older versions, there is a function *czsort*. It works on list of strings and returns that list, hmm, sorted. The function is defined simply like

```
        sub czsort
                { sort { czcmp($a, $b); } @_; }
```

standard use of user's function in *sort*. Hashes would be simply sorted

```
        @sorted = sort { czcmp($hash{$a}, $hash{$b}) }
                                                keys %hash;
```

Both *czcmp* and *czsort* are exported into caller's namespace by default, as well as *cscmp* and *cssort* that are just aliases.

This module comes with encoding table prepared for ISO-8859-2 (Latin-2) encoding. If your data come in different one, you might want to check the module **Cstocs** which can be used for reencoding of the list's data prior to calling *czsort*, or reencode this module to fit your needs.

## VERSION

0\.68

## SEE ALSO

[**perl**(1)](/perl/1.md), **Cz::Cstocs**(3).

## AUTHOR

(c) 1997--2000 Jan Pazdziora
