in reply to Re^7: Shorten a list...
in thread Shorten a list...

Hey,

I'm sorry about not having it exact from the start. I will keep that in mind for any later posts. Thanks again for all of your help.

Between the time I left and arrived at work this morning, the format was again changed. They took out the spaces between the group names:

>Group 42 0 25ap, >name_06-T_1_0... at 92.00% 1 28ap, >name_06-T_1_0... * >Group 43 0 28ap, >name_07-N_1_0... * >Group 44 0 29ap, >name_07-N_1_0... * >Group 45 0 25ap, >name_03-T_1_0... * 1 25ap, >name_06-T_1_0... at 100.00% 2 25ap, >name_07-N_1_0... at 100.00% 3 25ap, >name_11-N_1_0... at 100.00% 4 25ap, >name_14-T_1_0... at 100.00%

I will try out the code you gave me and see if I can modify it for this new format. Thanks again for all of the help.

Replies are listed 'Best First'.
Re^9: Shorten a list...
by la (Novice) on Oct 18, 2011 at 18:11 UTC

    So in this case, I would be changing the file separator from defining a new paragraph with blank lines, to defining a new paragraph with ">Group". THen I need the script to print the paragraph if the paragraph is greater than 2 lines.

    Is this along the right track?

    local ($/, $\) = ('', ">Group");
      #!/usr/bin/perl use strict; use warnings; { local $/ = '>Group'; while (<DATA>) { chomp; print ">Group$_" if tr/\n// > 2; } } __DATA__ >Group 42 0 25ap, >name_06-T_1_0... at 92.00% 1 28ap, >name_06-T_1_0... * >Group 43 0 28ap, >name_07-N_1_0... * >Group 44 0 29ap, >name_07-N_1_0... * >Group 45 0 25ap, >name_03-T_1_0... * 1 25ap, >name_06-T_1_0... at 100.00% 2 25ap, >name_07-N_1_0... at 100.00% 3 25ap, >name_11-N_1_0... at 100.00% 4 25ap, >name_14-T_1_0... at 100.00%
      prints
      >Group 42 0 25ap, >name_06-T_1_0... at 92.00% 1 28ap, >name_06-T_1_0... * >Group 45 0 25ap, >name_03-T_1_0... * 1 25ap, >name_06-T_1_0... at 100.00% 2 25ap, >name_07-N_1_0... at 100.00% 3 25ap, >name_11-N_1_0... at 100.00% 4 25ap, >name_14-T_1_0... at 100.00%
      If you want to separate the records with a newline in the output, add a newline in the print. print ">Group$_\n" if tr/\n// > 2;