Oops, you “forgot” to log in. Again.
As I stated, this is a very common use-case that is found on any shared-hosting setup ... and which is also sometimes used to isolate the dependencies of different applications (especially, older ones) so that the changes to the system-wide environment which happen from time to time will not affect them. A quick search on the suggested keys will yield links to many dozens of informative pages on this and other sites.
Incidentally, on my systems, I set up a separate, non-privileged user which is responsible for package installation and management, Perl or otherwise (including binaries). The operating system maintains the system-wide Perl package structure, typically through the use of “distro” packages, and this user maintains all of the libraries that are used by applications. Thus, these packages are read-only to those applications, because they are owned by this (other) user, but the packages are not owned by root. Applications specify a PERL5LIB environment variable, or a use lib path, which includes this library location.
local::lib is a great tool – very convenient – but it is not the only way to do it and not always the best one.