Dear Log,
I wrote a module the other day: strict::ModuleName.
Basically, use strict::ModuleName
in a module/class is a compile-term assertion that the current package name jives with the way that that file is named.
It's basically just for catching those annoying cases where you name the module Foo/BarBaz.pm but you start out the file with package Foo::Barbaz;
. Adding use strict::ModuleName;
after that will catch that!
(Implementation note: the module gains extra slack by applying to itself.)
You are welcome to now praise the module.
You are also welcome to bray "But who'd ever want that! I don't ever make mistakes!", but do bear in mind that I still have that ice-axe.