in reply to requiring perl modules

As covered in the require documentation, when require gets a string (instead of a bare statement), it doesn't automatically translate the '::' for you. You'll need to change your code to one of the following:

# Change the sprintf . . . $pkg = sprintf("%s/%s", $dir, $mod); # . . . OR change the require to be inside an eval eval "require $pkg";

In the second form, the expanded variable looks like a bare statement to require, so the '::' translation works.

----
I wanted to explore how Perl's closures can be manipulated, and ended up creating an object system by accident.
-- Schemer

: () { :|:& };:

Note: All code is untested, unless otherwise stated