use strict; use warnings; while () { s/\s+$//; my ($type, @defs) = split /\(\d+\)/,$_; print "\n------ Word type: $type\n"; @defs = grep { ! m{\(arch\)} } @defs; print "\t$_\n" for @defs; } __DATA__ (n,vs) (1) look; glimpse; glance; (vs) (2) to glance; to glimpse; (3) (arch) first meeting; (adv) (4) apparently; seemingly; (n-t,n-adv) (1) moment; a (short) time; a while; (2) former times; (3) (arch) two-hour period;