use IO::File; my $fh = new IO::File "input_file", "r"; my @lines = <$fh>; my $pattern = "r145"; my ($para,@output); foreach my $line(@lines) { if($line =~ /^(\S+)/ ) { if($line =~ /^$pattern/) { $para = undef; } else { $para = $1; push @output,$line; } } elsif(defined($para) ) { push @output,$line; } } print @output;