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.