in reply to Please help with sorting/sort

I'm not sure I'm clear on your requirements. It seems that you want to sort the matching lines but leave all the other lines in whatever location you found them.

my @lines = <DATA>; my @matching_indices = grep $lines[$_] =~ /id:\s?\d/, 0 .. $#lines; my @matching_lines = @lines[@matching_indices]; my @sorted_matching_lines = sort { my ($an) = ( $a =~ /id:\s?(\d+)/ ); my ($bn) = ( $b =~ /id:\s?(\d+)/ ); $an <=> $bn } @matching_lines; @lines[@matching_indices] = @sorted_matching_lines; print @lines; __DATA__ #Comment *ss id addr id: 099 bbb ccc aaa *ss id addr id: 003 aaa bbb ccc #Comment 2 *333 23 ss id: 002 aaa bbb ccc *22 233333333 34432 233 44

Here's the output:

#Comment *333 23 ss id: 002 aaa bbb ccc *ss id addr id: 003 aaa bbb ccc #Comment 2 *ss id addr id: 099 bbb ccc aaa *22 233333333 34432 233 44

Replies are listed 'Best First'.
Re^2: Please help with sorting/sort
by learningperl01 (Beadle) on Feb 14, 2008 at 17:04 UTC
    WOW, thanks for the quick reply it WORKS GREAT!! Thanks for the help Kyle!!