in reply to "use strict" not too strict

Whilst your cow orker is correct that C wouldn't let you do that. It is also true that C won't let you create subs at runtime or autoload subs at runtime. That's not strictly true with dynamic libraries, but then C can't check whether they will be available to be autoloaded at runtime either, so that mirrors the situation in Perl.

This point is that any system that allows late binding of subroutines cannot check for their availability until runtime. The benefits of late binding are sufficiently worth while, that foregoing the benefit of static compile-time cross-checking is worth it.

If you really want full compile time checking, you could always copy the source of all the modules you use in each script directly into the script itself, and comment out the use Module::Name; lines. Each script would become enormous and maintainence would become a nightmare as you would need to edit every script that used a module every time that module was ungraded.

The choice is yours:)


Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller