$filename = "di_list_plaintext.txt"; $notmatched = 0; open(FILEHANDLE, $filename); while() { $field = "???"; if(m/biolog/i || m/genetic/i || m/ecolog/i || m/entomolog/i || m/botan/i || m/embryo/i || m/zoology/i || m/life sci/i || m/anthropolog/i || m/bacteriolog/i || m/virol/i || m/paleontol/i || m/dendrology/i) { $field = "Biology"; $fields{"Biology"}++; } elsif(m/chemis/i || m/chemical/i) { $field = "Chemistry"; $fields{"Chemistry"}++; } elsif(m/geolog/i || m/ocean/i || m/marine/i || m/geosci/i || m/environment/i || m/limnol/i || m/hydrol/i) { $field = "Geology"; $fields{"Geology"}++; } elsif(m/medic/i || m/physiology/i || m/psychiatr/i || m/surgery/i || m/surgical/i || m/psychol/i || m/pharm/i || m/neuro/i || m/pathol/i || m/epidemi/i || m/kinesiol/i || m/toxicol/i || m/ophthal/i || m/radiolog/i || m/cancer/i) { $field = "Medicine"; $fields{"Medicine"}++; } elsif(m/health/i || m/nutrit/i) { $field = "Health/Nutrition"; $fields{"Health/Nutrition"}++; } elsif(m/agronomy/i || m/plant/i || m/dairy/i || m/animal/i || m/silvi/i || m/soil/i || m/crop/i || m/fisheri/i || m/forestry/i) { $field = "Agronomy/Agriculture"; $fields{"Agronomy/Agriculture"}++; } elsif(m/physic/i || m/astronom/i || m/meteor/i || m/atmos/i || m/thermo/i || m/relativ/i || m/space/i) { $field = "Physics"; $fields{"Physics"}++; } elsif(m/math/i || m/statist/i) { $field = "Mathematics"; $fields{"Mathematics"}++; } elsif(m/engineer/i || m/electr/i || m/comput/i || m/aviation/i || m/aerospace/i || m/materials/i || m/technol/i || m/circuit/i || m/mechanic/i) { $field = "Engineering"; $fields{"Engineering"}++; } else { $notmatched++; } print OUTPUT "{$field] $_"; $counttotal++; } close(FILEHANDLE); close(OUTPUT); print "Total: $counttotal lines, $notmatched not matched\n"; foreach $key (keys %fields) { print "$key : $fields{$key}\n"; }