improve the indentation of the generated Perl code
add support for perl-style comments

the comments are simply dropped by the tokenizer
add support for multiple lines of consecutive comments

this fixes a bug where parsing this:

    #comment1
    #comment2

would produce the following error:

    Syntax error near '#comment2' (line number 2).
    Expected terminal: 'end of input'
avoid "Use of uninitialized value" warnings when the hash misses some keys
create the main module
use the main module in tests