Eine Frage hätte ich dazu:
In welcher Form soll die Applikation verteilt werden? Wenn das Pakete für die jeweiligen Paketmanager sind, dann kannst Du Perl als Abhängigkeit eintragen.
Das wäre der Weg, den ich einschlagen würde: Auf diesem Weg hast Du eine definierte Verzeichnisstruktur für Deine Applikation und man kann auch gleich etwaige Perl-Module einbinden lassen.
Ansonsten: Perl ist in C geschrieben, da muss man schon für jede Plattform kompilieren. Unterschiedliche Plattformen haben unterschiedliche Speicherarchitektur und Registerbreite. Was für eine 64bit-Plattform wie x86_64 übersetzt wurde, kann auf einer 32bit-Architektur wie i686 nicht laufen (in der anderen Richtung
kann sowas funktionieren). Ein PowerPC mit ppc64 hat schon mal ganz andere Maschinenbefehle, der versteht ein für Intel/AMD geschriebenes binäres Programm nicht.
Man muss nicht unbedingt
auf jeder Plattform kompilieren, man kann schon auf x86_64
für andere Plattformen kompilieren. Das heisst "Cross Compilation" und ist leider nicht sooo ganz einfach für ein komplexes Paket wie Perl.
Zwei Links zum Thema Cross Compilation habe ich:
- Cross Compiling for Perl Hackers - Ein Vortrag von Jens Rehsack von der Perl-Konferenz in Amsterdam 2017. In dem Vortrag ist auch der Unterschied zwischen "API" (Application Programming Interface) und "ABI" (Application Binary Interface) erläutert, und genau auf das ABI kommt es beim Kompilieren für verschiedene Plattformen an.
- Cross-compiling perl ist ein Ansatz von Alex Suykov (Benutzung auf eigene Gefahr), das Problem im configure-Skript zu lösen. In diesem Skript ermittelt Perl die Eigenschaften der aktuellen Plattform, das läuft vor dem Übersetzen der C-Sourcen.