In my experience, a Junior Programmer isn't responsible for higher level abstraction. In a larger programming environment the junior programmers are given individual components and the senior programmers are expected to stitch the parts together and work on the core api and coding. What all that means to individual Perl programmers is up to you. In my opinion, there are people who can kick out good code but can't be trusted or expected to design complete systems. Call it experience or ability, some people aren't able to put together larger, complex code systems but can write a perfectly good script or module. Senior vs. Junior is more about design ability than coding ability.
--
$you = new YOU;
honk() if $you->love(perl)