I need some help. I can't figure out how to omit duplicate IDs in the output file.
#!/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") or die "cannot open $input: $!\n"; 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; IN.SRT ----------- <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>... OUT.SRT --------------- <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>... -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>