use strict; use warnings; my $string="TOPO_DOM 1; /note=Cytoplasmic; /evidence=ECO:0000269|PubMed:24744376; TOPO_DOM 25..74; /note=Extracellular; /evidence=ECO:0000269|PubMed:24744376; TOPO_DOM 100..115; /note=Cytoplasmic; /evidence=ECO:0000269|PubMed:24744376; TOPO_DOM 141..159; /note=Extracellular; /evidence=ECO:0000269|PubMed:24744376; TOPO_DOM 183..227; /note=Cytoplasmic; /evidence=ECO:0000269|PubMed:24744376"; my @split_topodom = split(/TOPO_DOM\s*/, $string); @split_topodom = grep {/\S/}@split_topodom; # remove blank lines print join "\n",@split_topodom; __END__ 1; /note=Cytoplasmic; /evidence=ECO:0000269|PubMed:24744376; 25..74; /note=Extracellular; /evidence=ECO:0000269|PubMed:24744376; 100..115; /note=Cytoplasmic; /evidence=ECO:0000269|PubMed:24744376; 141..159; /note=Extracellular; /evidence=ECO:0000269|PubMed:24744376; 183..227; /note=Cytoplasmic; /evidence=ECO:0000269|PubMed:24744376