in reply to sort on numbers embedded in text

If you have three sets of data that need to be sorted independently, I'd reccomend you start by seperating your @records into three seperate arrays, like so:
my (@records1, @records2, @records3) foreach (@records) { if (/^BLOGO/) { push @records1, $_; } elsif (/\d{3}-FMT-FMT) { push @records2, $_; } else { push @records3, $_; }
Now you have 3 arrays, each with one data type. Assuming each piece of data has exactly one block of digits, you can sort them with
foreach (\@records1, \@records2, \@records3) { my @recs = @$_; #-- print join "\n", sort {$a1 = $a =~ /(\d+)/; $b1 = $b =~ /(\d+)/; $a1 <=> $b1 } @recs; #-- }
If you don't know about references yet, you can just do the code in between "#--"'s once for each array, substituting the array name for @recs.

--
Ryan Koppenhaver, Aspiring Perl Hacker
"I ask for so little. Just fear me, love me, do as I say and I will be your slave."