in reply to Debugging failed "use" statement.

Perl doesn't know that Some/Module.pm is a module when you load it with -c. All it knows is that you've given it a filename--and that filename can be anything and have any extension that your particular operating system and filesystem allow.

Just as a .pl file doesn't have to end by returning a true value, neither does a module until you tell Perl to treat it as a module. The -M flag does that, just as do use and require.

Edit: removed a sentence.