dog:cat:pig <== skip, only has three fields Amy:Ann <== skip, only has two fields ape:ant:bug:car <== match this line (it has four fields) but we only need to keep 'ape' and 'ant' #### while () { chomp; (my ($first, $second) = split /:/) == 4 or next; print "$first $second\n"; } __DATA__ dog:cat:pig Amy:Ann ape:ant:bug:car