As an addition to what
moritz said (which is the most important thing here):
- use English makes your regular expressions dramatically slower (see English).
- Since you don't use English names for punctuation variables—it is unnecessary anyway. So are use UNIVERSAL qw(isa) (which should not be used as a function anyway) and use FileHandle. However, use warnings would be nice.