Version 1.00 of Hardware::Vhdl::Lexer has been uploaded to PAUSE and should soon be available on CPAN.
The code has been fairly drastically refactored after reading the Perl Best Practices book - it is definitely more maintainable and better documented now, and is probably also faster. Unfortunately, following the PBP guidelines has meant a change to the user interface: the class constructor, new(), now takes its arguments as a hash reference rather than a hash. This means that upgrading Hardware::Vhdl::Lexer will break any old code that uses it, but on the other hand the fix is quite easy - just put curly brackets around the argument list of new().
There is one other change to the behaviour of the module: characters which are not legal VHDL are now returned with a new token type code of 'cu': in older versions they would be interpreted as single punctuation characters, with the 'cp' type'. Valid VHDL punctuation continues to have the 'cp' token type.
I hope these changes won't inconvenience anyone too much.
Michael A