G'day perlance,
Reading the entire file contents into a string, and then reading all of that data again to parse it, is not very efficent: instead, parse the data as you're reading it (once). I also think you're completely on the wrong track with '... split(/($pattern)/ ...'; to be honest, I'm not really sure what you were hoping to achieve with that.
All you probably need is something simple like this:
#!/usr/bin/env perl use strict; use warnings; my $chunk = -1; while (<DATA>) { if ((split)[1] eq 'False') { ++$chunk; print "#Chunk $chunk:\n"; } print; } __DATA__ GO:0002366 False GO:0002446 True GO:0002275 True GO:0043312 True GO:0006733 False GO:0019674 False GO:0043588 False GO:0055065 False GO:0055080 True
Output:
#Chunk 0: GO:0002366 False GO:0002446 True GO:0002275 True GO:0043312 True #Chunk 1: GO:0006733 False #Chunk 2: GO:0019674 False #Chunk 3: GO:0043588 False #Chunk 4: GO:0055065 False GO:0055080 True
— Ken
In reply to Re: Parsing block of texts
by kcott
in thread Parsing block of texts
by perlance
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |