unlink("$path$rfile"); open(FILE, "/home/testuser01/") || die "Count not open old Gen_file"; @lines = ; @matching_indices = grep $lines[$_] =~ /id\:\s?\d/, 0 .. $#lines; @matching_lines = @lines[@matching_indices]; @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;