#!/usr/bin/env perl

use strict;
use warnings;
use autodie;
use feature qw( :all );
use utf8;

use Sort::Naturally;

use lib glob('~/perl5/lib');
use MyUtils qw( vardump );

my @list = qw(
    4 A X i 1 x 10 a B ä y z į C Ä b c Į Y Z
    än and
    ÄND
    And
    Any
    ant
    Äm Äs
);
say "unsorted              : @list";
say '';

{
    no locale;

    my @sorted = sort @list;
    say "no locale,  perl      : @sorted";
    @sorted = nsort @list;
    say "no locale,  naturally : @sorted";

    say '';
}

{
    use locale;

    my @sorted = sort @list;
    say "use locale, perl      : @sorted";
    @sorted = nsort @list;
    say "use locale, naturally : @sorted";

    say '';
}

{
    use locale;
    use Scalar::Util qw( looks_like_number );

    sub mycmp {
        if( looks_like_number( $a ) && looks_like_number( $b ) ){
            return $a <=> $b || $a cmp $b;
        }else{
            return $a cmp $b;
        }
    }

    my @sorted = sort mycmp @list;
    say "use locale, perl num  : @sorted";

    say '';
}

