my @arrayC; while(defined($textblock) = <>) { my @arrayA = (); foreach my $string (@strings) { my @arrayB = (); while($textblock =~ /$string/) { push @arrayB, [ $-[0], $+[0] ]; } push @arrayA, \@arrayB; } push @arrayC, \@arrayA; }