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>