my $fh = new FileHandle "$dir/$file"; defined $fh or die "couldnt open $file: $!"; <$fh>; my %line; while (<$fh>) { my @line = map { s/^\s+//; s/\s+$//; s/\x0d//; $_; } ( quotewords("\t", 0, $_) ) ; $line[$FULL_NAME] =~ s<([^\x20\x21\x23\x27-\x3b\x3d\x3F-\x5B\x5D-\x7E])> <'&#'.(ord($1)).';'>seg; $line{$line[$ACRONYM]} = { type => $line[$TYPE], full_name => $line[$FULL_NAME] } ; } \%line;