Rectangle 27 1

Did Perl 5.10 mess something up with prototypes?


perl -e'use strict; use warnings; my %table; mod_table %table => (1,2,3,4)'

Because the lack of compile-time import can affect the compiled test code in ways like this, it's a good idea to use use instead of use_ok in all tests except a test dedicated to just doing the use_ok (potentially with a BAIL_OUT). (Putting the use_ok in a BEGIN block alleviates these kind of problems but can cause other problems, so isn't a good idea.)

This code produces the same warnings/error, both on 5.8 and 5.10.

This is the expected result. The use_ok call is at run-time, so the mod_table sub is only compiled and imported after the "call" to it is encountered during compilation, so the "call" to mod_table is interpreted as an illegal bareword.

Note