in reply to Splitting only on internal pattern, not at start or end of string
Instead of splitting you could use a regex like [AGCT]+ to pick the bits you need with optional Ns at the beginning or end of the string (modifying robby_dobby's example from above):
use strict; use warnings; while (my $line = <DATA>) { my @info = $line =~ /((?:^N+)?[ATGC]+(?:N+$)?)/g; print join(", ", @info), "\n"; } __DATA__ NNNAAAATATGACAAAGGGGTTNNNNNNNNNNNNNNGATGTCTGGTCAATAGGAT CGCAGCCATTAACATCTCAACAAGCCAAAAATTCCTTCTCAGAAATTCGGNNN AAAATATGACAAAGGGGTTNNNNNNNNNNNNNNGATGTCTGGTCAATAGGAT
|
|---|