my @offsets; while ( my $line = ) { chomp $line; my @words = split " ", $line; next if ! grep {$_ eq 'lazy'} @words && ! grep {$_ eq 'dog'} @words; my $first; for ( 0 .. $#words ) { my $word = $words[$_]; if ( $word eq 'dog' || $word eq 'lazy' ) { if ( $first ) { push @offsets, $_ - $first + 1; $first = 0; last; } $first = $_; } } } print "The number of matches is : ", scalar @offsets, "\n"; print "The offesets are :\n"; print "$_\n" for @offsets;