Source file names may not be human readable for several reasons related to compilation, caching, and module loading processes:
When a module is loaded, the system checks if the source has changed and may compile or cache bytecode to optimize loading speed. These cached or compiled files often have encoded or hashed names that differ from the original readable source name.
Source files may be automatically transformed or managed by the language tools or package managers, producing intermediate representations or artifacts with less human-friendly names used internally.
For Raku specifically, module files (.rakumod or .pm6) can declare multiple modules or classes internally, decoupling file names from module names to allow flexible naming and packaging conventions.
File naming conventions and module structures may also follow filesystem or namespace constraints, where characters are sanitized or encoded to comply with rules, resulting in names less immediately clear to humans.
In summary, the discrepancy between readable source code module names and actual filenames on disk often arises due to tooling optimization, language runtime requirements, or packaging designs that emphasize correct, fast loading and module namespace management over purely human readability.
This explanation aligns with common observations reported by Raku developers and on platforms like Stack Overflow regarding module source file handling.raku+1