#! perl -sw use strict; our $WORDS ||= 1; our $KEYWORD || die "-KEYWORD=word needed"; local $/ = ''; # Paragraph mode my $re_word = qr[\S+\s+]; my $re_5w_key_5w = qr[ ( $re_word {1,$WORDS} \Q($KEYWORD\E[,.;:!?]*\s+ $re_word {1,$WORDS} ) ]ix; open IN, '<', $ARGV[ 0 ] or die $!; while( ){ if( $_ =~ $KEYWORD ) { while( $_ =~ m[$re_5w_key_5w]g ) { print "'$1'\n---\n"; } } }