So how would you suggest distributing a Perl application to users who:
a) do not have the correct version of Perl installed on their machine
b) do not have the dependency tree for the Perl application installed on their machine
c) do not have a compiler toolchain to build an binary dependencies from source
d) do not have the technical knowledge and/or permissions necessary to do a, b, and c
Solving the distribution problem is why PAR::Packer exists. Maybe you only run your software on machines that you have root/administrator permissions on, but some of us have to produce distributable packages with no external dependencies.
To the OP: you have to build your distribution on each platform you wish to support. PAR::Packer does not have a "cross-compile" capability. The pure Perl portions of your codebase (and dependency tree) won't change, but any XS code or other C libraries you call will need to be compiled on the target architecture and included in the package.
pp is pretty good about dependency checking, but you may have to manually link in any binary dependencies (EG pp --link=libfoo.dll ... for Windows, pp --link=libfoo.so .. on Linux) if they live ouside of the $PERL5LIB directory tree.
Virtual machines are great for testing bare-metal installs.