Package Blocks were introduced in perl 5.12. They have the advantage of limiting the scope of lexical variables to the package. I did not use strict in this example because the the concept that I am trying to learn makes changes to the symbol table. The hashes and the the string $marshalling_data must be global variables. Explicitly specifing all the exceptions to strict would mask my intention.