in reply to Re^2: difficulty in sorting
in thread difficulty in sorting

It sounds like all you need is a minor tweak to Tanktalus's code then:
#! /usr/bin/perl -w use strict; my @sortable; my $inAddrRange=0; while ( <DATA> ) { # are we starting an <address> range? $inAddrRange=1 if /<address>/; # are we ending a range with </address>? $inAddrRange=0 if m{</address>}; # are we in the ref's AND in an addr range? if ($inAddrRange && /^\<ref/) { # keep track of it, but don't print it out yet. push @sortable, $_; next; } # else, are we done ref's? if (@sortable) { print for sort @sortable; # done with them, get rid of 'em. @sortable = (); } # this line can be printed out at this point. print; } __DATA__ [ same as yours, so I'm not repeating it ]
I haven't tested this, but I think it'll do what you want...

Mike