|
Packit |
d0f5c2 |
#!/usr/local/bin/perl
|
|
Packit |
d0f5c2 |
#
|
|
Packit |
d0f5c2 |
# $Id: ucmsort,v 2.2 2006/05/03 18:24:10 dankogai Exp $
|
|
Packit |
d0f5c2 |
#
|
|
Packit |
d0f5c2 |
use strict;
|
|
Packit |
d0f5c2 |
my @lines;
|
|
Packit |
d0f5c2 |
my ($head, $tail);
|
|
Packit |
d0f5c2 |
while (<>){
|
|
Packit |
d0f5c2 |
unless (m/^
|
|
Packit |
d0f5c2 |
unless(@lines){
|
|
Packit |
d0f5c2 |
$head .= $_;
|
|
Packit |
d0f5c2 |
}else{
|
|
Packit |
d0f5c2 |
$tail .= $_;
|
|
Packit |
d0f5c2 |
}
|
|
Packit |
d0f5c2 |
next;
|
|
Packit |
d0f5c2 |
}
|
|
Packit |
d0f5c2 |
chomp;
|
|
Packit |
d0f5c2 |
my @words = split;
|
|
Packit |
d0f5c2 |
my $u = shift @words;
|
|
Packit |
d0f5c2 |
$u =~ s/^<U//o; $u =~ s/>.*//o;
|
|
Packit |
d0f5c2 |
push @lines,[ $u, @words ];
|
|
Packit |
d0f5c2 |
}
|
|
Packit |
d0f5c2 |
|
|
Packit |
d0f5c2 |
print $head;
|
|
Packit |
d0f5c2 |
for (sort {
|
|
Packit |
d0f5c2 |
hex($a->[0]) <=> hex($b->[0]) # Unicode descending order
|
|
Packit |
d0f5c2 |
or $a->[2] cmp $b->[2] # fallback descending order
|
|
Packit |
d0f5c2 |
or $a->[1] cmp $b->[1] # Encoding descending order
|
|
Packit |
d0f5c2 |
}
|
|
Packit |
d0f5c2 |
@lines) {
|
|
Packit |
d0f5c2 |
my $u = shift @$_;
|
|
Packit |
d0f5c2 |
print join(" " => "<U$u>", @$_), "\n";
|
|
Packit |
d0f5c2 |
}
|
|
Packit |
d0f5c2 |
print $tail;
|
|
Packit |
d0f5c2 |
__END__
|