Hi,

I can't seem to get my script to sort properly. Below is my code along with a 
sample input.txt file. I also have what the output.txt file should look like. 
Also note any duplicate should be striped out 
which seems to work ok.

Something is getting messed up when I have the numerials along with alpha etc. 
I can't seem to get the results of the OUTPUT.TXT file below.




<code>

#!/usr/bin/perl -w

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 = <FILE>) {
    $tag =~ m/<tag id=(\w+)>/;
    $tags{$1} = $tag;
  }
  open (NEWFILE, "> $output");
  foreach my $id ( map { $_->[0] }
                   sort { $a->[0] cmp $b->[0] || $a->[7] <=> $b->[7] }
                   map { [ $_, ( isdigit( $_ ) ? $_ : 0 ) ] }
                   keys %tags )
  {
         print NEWFILE $tags{$id};


close NEWFILE;
close FILE;

</code>


INPUT.TXT file
------------------------

<tag id=1>Test.</tag>   
<tag id=16ab>Test.</tag>
<tag id=aa>Test.</tag>  
<tag id=16zz>Test.</tag>
<tag id=39a>Test.</tag> 
<tag id=cc>Test.</tag>  
<tag id=de>Test.</tag>  
<tag id=16bc>Test.</tag>
<tag id=zz>Test..</tag> 
<tag id=2>Test.</tag>   
<tag id=3>Test.</tag>   
<tag id=4>Test.</tag>   
<tag id=5>Test.</tag>   
<tag id=5a>Test.</tag>  
<tag id=5za>Test.</tag> 
<tag id=6>Test.</tag>   
<tag id=40>Test.</tag>  
<tag id=41>Test.</tag>  
<tag id=40>Test.</tag>  
<tag id=45>Test.</tag>  
<tag id=10ba>Test.</tag>
<tag id=15xx>Test.</tag>
<tag id=cc>Test..</tag> 
<tag id=ff>Test..</tag> 
<tag id=50>Test.</tag>  
<tag id=54>Test.</tag>  
<tag id=7>Test.</tag>   
<tag id=8>Test.</tag>   
<tag id=16yy>Test.</tag>
<tag id=16ya>Test.</tag>


OUTPUT.TXT file
-----------------------------

<tag id=1>Test.</tag>  
<tag id=2>Test.</tag>  
<tag id=3>Test.</tag>  
<tag id=4>Test.</tag>  
<tag id=5>Test.</tag>  
<tag id=5a>Test.</tag> 
<tag id=5za>Test.</tag>
<tag id=6>Test.</tag>  
<tag id=7>Test.</tag>  
<tag id=8>Test.</tag>  
<tag id=10ba>Test.</tag
<tag id=15xx>Test.</tag
<tag id=16ab>Test.</tag
<tag id=16bc>Test.</tag
<tag id=16ya>Test.</tag
<tag id=16yy>Test.</tag
<tag id=16zz>Test.</tag
<tag id=39a>Test.</tag>
<tag id=40>Test.</tag> 
<tag id=41>Test.</tag> 
<tag id=45>Test.</tag> 
<tag id=50>Test.</tag> 
<tag id=54>Test.</tag> 
<tag id=aa>Test.</tag> 
<tag id=cc>Test..</tag>
<tag id=de>Test.</tag> 
<tag id=ff>Test..</tag>
<tag id=zz>Test..</tag>






-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to