use strict; use warnings; while (){ print if $_ =~/country\s+city1\s+street1/i and $_ !~/name3/ ; } __DATA__ Country City Street1 number1 name1 Country City1 Street1 number1 name2 Country City1 Street1 number2 name3 Country City1 Street2 number1 name4 Country City1 Street2 number1 name5 #OUTPUT Country City1 Street1 number1 name2