##
>perl test.pl input.txt output.txt
##
##
require 5.000;
use warnings;
use strict;
use POSIX;
my %tags = ();
my $input = $ARGV[0];
my $output = $ARGV[1];
open (FILE, "< $input") or die "cannot open $input: $!\n";
while (my $tag = ) {
$tag =~ m//;
$tags{sprintf("%04d%6s",$1 || 999,$2)} = $tag;
}
open (NEWFILE, "> $output");
foreach my $id ( sort keys %tags )
{
print NEWFILE $tags{$id};
}
close NEWFILE;
close FILE;