while () { next if !m/foo (\d+) bar (\d+)/ || $1 != $2; print; } __DATA__ foo 1000 bar 1000 foo 1000 bar 500