Is there the best way to deliver an application to production?
There are many ways. The more effort you put into it, the less effort your client needs to expend in order to install your software. The ideal way
is creating packages, e.g. rpm or deb; that way everything is downloaded, installed and configured with just a single command, and you get update infrastructure for free.
I am both a programmer and a packager and have written a couple of times about that topic. You need to tell me about the specifics of the Perl application and the operating system on the production system for further information.
Packaging is an order of magnitude less difficult than programming, semi-automatic most of the time and on popular platforms your dependencies are already packaged.
How to create equal testing area on dev machine and on client's machine?
Don't do that. You run the test system.
It is set up as similar to the production system as possible.