while ($string=~m{<(ths|193)>|\.}g) { $count=$count+($tbsz * 0.25); } #### my %factor; $factor{ths} = $factor{193} = 0.25; $factor{ems} = $factor{194} = 0.5; $factor{ens} = $factor{195} = 1; $factor{W} = $factor{' '} = $factor{"\n"} = $factor{"\t"} = ... = 1; $factor{w} = $factor{'('} = $factor{')'} = 0.84375; .... my $count; while (/(?|<([A-Za-z0-9]+)>|(.))/g) { no warnings 'uninitialized'; $count += $factor{$1}; } $count *= $tbsz; #### my $charclass = join "", grep {1 == length} keys %factor;