foreach my $ur (@strings_to_be_matched) { $reg1 = qr/\=/i; $reg2 = qr/\S+\=\S+/i; $reg3 = qr/extern.+\b$ur\b\s*/i; $reg4 = qr/;$/i; $reg5 = qr/.+\b$ur\b\s*/i; foreach my $line (@contents_of_file) { if(($ln =~ $reg3 and $ln =~ $reg4)){ } if(($ln =~ $reg5 and $ln=~ $reg4 and ($ln !~ $reg1 or $ln =~ $reg2)) { } if(($ln =~ $reg3 and $ln !~ $reg4)){ } if(($ln =~ $reg5 and $ln !~ $reg4 and $ln !~ $reg1)) { } } } #### if (($ln =~ $reg5 and $ln=~ $reg4 and ($ln !~ $reg1 or $ln =~ $reg2))) { } if (($ln =~ $reg5 and $ln !~ $reg4 and $ln !~ $reg1)) { }