I thought I'd refer you to my reply in an old thread with a similar topic.
I'm a Java guy myself (involuntarily at work). The biggest mental block I had regarding Perl's system for organizing code is basically: in Perl, a file != a module. That is, one single file can contain code for multiple namespaces... or there can be multiple files, all with code for a single namespace. This is in contrast to Java, where each file starts with a package declaration (or it's implicitly the default package), and you're working with your chosen namespace for the entire file.
perlmod is your definitive guide for all this.