in reply to Extremely weird module issue...

The convention of putting pod after the __END__ of code might have prevented this problem.

A lazy approach is to move use Switch under your pod. More energy is takened to localize the use of Switch. These approaches come from a mental process that is suited to refactoring or enhancing unfamiliar code.

# use Switch; deleted... sub doCmd { my $self = shift ; my $cmd = shift ; use Switch; switch ($cmd) { case 'get_permission' {} } no Switch; }
Be well,
rir