in reply to Merge two scripts into one
Instead of emitting the results of the first script to a file, you need to save them in a perl data structure. An AOH (array of hashes) would probably work well here. Also, I'd keep track of the comment lines as you generate them in the first script.
In your first script, instead of printing a comment line to NEW_GEN, do this:
$comment{$lineno++} = $_;
And instead of printing an id line to NEW_GEN, do this:
push(@lines, { id => $id, line => $_ }); $lineno++;
Then the second script becomes:
@lines = sort { $a->{id} <=> $b->{id} } @lines; for (0..$lineno-1) { if (exists $comment{$_}) { print $comment{$_}; } else { my $x = shift(@lines); print $x->{line}; } } # @lines should be empty at this point
This will keep the comment lines in their original places while sorting the id lines.
|
|---|