in reply to Simple modules
Two things:
(1) Perl is specifically designed so that a program “just works, even on Windows.” Take that program to a Linux box and ... without source-code changes ... it still works. Therefore, a consistent nomenclature is used, regardless of the peculiarities of the host system:
(2) When you use a module, the various subs in it are not automatically “exported” from it. (The module author can of course specify that it should be so, and you can specify exactly what you do want to export... that's why you sometimes see a list of names on a use statement.)
In your specific case, the documentation in perldoc File::Basename clearly shows (in its SYNOPSIS) that by default the symbol basename will be exported. You seem to be using the exported routine correctly. But as you move forward with your learning of modules, you'll need to be familiar with (and to understand the reasoning for), idioms like these: