use Data::Dumper; use strict; my @data; my $cur_index; open(DATA, "<", "data.txt"); while () { #chomp; if (m/^>DATA SET (\d+)/) { $cur_index = $1; } else { $data[$cur_index] .= $_; } } close(DATA); print Dumper(@data);