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>