The pp utility in PAR::Packer will bundle your code, the modules needed by your code and the Perl interpreter into a stand-alone executable. That means the executable contains everything needed to run the script. For example, let's say that you've got two systems that have the same OS, but Perl is only installed on system A. So you create a Perl script on system A and use pp to create an executable. You can now take that executable to system B and it will be able run the executable just fine. System B could have no Perl installed, different version of Perl installed, missing required modules, etc. and none of that matters because it is using the contents of the executable.
There are some caveats and exceptions to what I described above, but what I described is accurate. Try installing PAR::Packer and read up on the documentation of the pp utility. It will do exactly what you're wanting to do.