use strict; use warnings; my $dat="0011222STRUCTdata1...............02121STRUCTdata2..........02342STRUCTdata3"; my @m; @m = $dat =~ /STRUCT/g; shift (@m); foreach (@m) {print "$_\n"}; #### @m = $dat =~ /(.*?)(?:STRUCT|$)/g; shift (@m); shift (@m); foreach (@m) {print "$_\n"}; @m = split(/STRUCT/, $dat); shift(@m); shift(@m); foreach (@m) {print "$_\n"};