local $/ = ''; # Paragraph mode my $item = "SeaMonkeys"; my $catNum = "SMKY-1978"; my $maxInstancesToReplace = 2; my $item_re = qr/^[ ]*ItemID[ ]*:=[ ]*"\Q$item\E"[ ]*$/m; my $catNum_re = qr/^[ ]*CatalogNumber[ ]*:=[ ]*"\Q$catNum\E"[ ]*$/m; my $instances = 0; while () { if ( $instances < $maxInstancesToReplace && /$item_re/ && /$catNum_re/ ) { ++$instances; # ... } print; }