#!/usr/bin/perl
while (my $line = <>) {
if($w) {
$line =~ /^\[(\d+)\]\s+(.*)$/; $footnote[$index{$1}] = $2;
} else {
$w = 1 if $line =~ /^\@footnotes/;
@hits = $line =~ /\[(\d+)\]/g;
foreach my $hit (@hits) {
if( not defined $index{$hit}) { $index{$hit} = ++$i };
$line =~ s/\[$hit\]/\[$index{$hit}\]/g;
}
print $line;
}
}
for my $i (1..$#footnote+1) {
printf( "[%d] %s\n", $i, $footnote[$i] ? $footnote[$i] : 'not defined' ) if defined($footnote[$i]) or defined($index{$i})
}