in reply to about regular expression
You can grab all the possible values for intron and exon with your regex and then split them up.
Consider replacing your intron/exon elsif blocks with this:
This will print out, based on your input data:
Ryan
Consider replacing your intron/exon elsif blocks with this:
I replaced all the *s with +s, from my understanding this is more efficient, but I'm no regex guru :) The regex puts everything between the "double quotes" in $1#new intron elsif block elsif(/\s+\/intron="(.+)"\n/) { foreach $item (split('\;',$1)) { print OUT "Intron\t $item\n"; } }
This will print out, based on your input data:
Now that they are separated, you can do whatever you want with them.Intron 1-48 Intron 334-385
Ryan
In Section
Seekers of Perl Wisdom