Hi, I have a script that sorts the IDs with numerials first followed by alphas. Everything works ok except that there are some IDs in the input file that are duplicates. How can I "omit" and duplicate IDs from the output file?
Below is my script and a sample input and output file generated from the below. Notice in the output file I have duplicate IDs for the following: 2, 5, 15, ab, bcm fa I only want the output file to contain the first occurance and toss the rest out. How can I do this? SCRIPT: ======= #!/usr/local/bin/perl require 5.000; my %tags = (); my $input = $ARGV[0]; my $output = $ARGV[1]; open (FILE, "< $input") or die "cannot open $input: $!\n"; open (OUTPUTFILE, "> $output"); chomp(my @lines = <FILE>); my @chars = map { my ($id) = m{<a id=(\w+)>}; [ $_, $id, scalar $id =~ /^\d+$/ ]; } @lines; my @sorted_chars = sort { $b->[2] <=> $a->[2] or ($a->[2] ? $a->[1] <=> $b->[1] : $a->[1] cmp $b->[1]) or $a->[0] cmp $b->[0] } @chars; my @result = map { $_->[0] } @sorted_chars; print OUTPUTFILE "$_\n" for @result; close OUTPUTFILE; close FILE; INPUT: ====== <a id=ab>... <a id=1>... <a id=ab>... <a id=15>... <a id=2>... <a id=fa>... <a id=5>... <a id=13>... <a id=20>... <a id=fa>... <a id=3>... <a id=7>... <a id=5>... <a id=21>... <a id=2>... <a id=bc>... <a id=22>... <a id=15>... <a id=fa>... <a id=25>... <a id=8>... <a id=24>... <a id=2>... <a id=ab>... <a id=16>... <a id=15>... <a id=bc>... OUTPUT: ======== <a id=1>... <a id=2>... <a id=2>... <a id=2>... <a id=3>... <a id=5>... <a id=5>... <a id=7>... <a id=8>... <a id=13>... <a id=15>... <a id=15>... <a id=15>... <a id=16>... <a id=20>... <a id=21>... <a id=22>... <a id=24>... <a id=25>... <a id=ab>... <a id=ab>... <a id=ab>... <a id=bc>... <a id=bc>... <a id=fa>... <a id=fa>... <a id=fa>... WANT TO ACHIEVE: ================= <a id=1>... <a id=2>... <a id=3>... <a id=5>... <a id=7>... <a id=8>... <a id=13>... <a id=15>... <a id=16>... <a id=20>... <a id=21>... <a id=22>... <a id=24>... <a id=25>... <a id=ab>... <a id=bc>... <a id=fa>... -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>