You can put some code into Zephir/General.pm, load it with use Zephir::General but still have it in Zephir package as long as Zephir/General.pm starts with package Zephir. Module SomeName isn't really required to contain package SomeName. It is common convention but it is not strict rule you cannot break.