There are two parts of the world: Windows and others. While "others" have many names like Linux, FreeBSD, Solaris, all of them usually come with preinstalled Perl, but Windows? There are ActivePerl and Strawberry Perl, but is this enough?
Perl is still rarely used on Windows, but this might be the result of a different point of view between Perl guys and Windows guys.
Windows users are used to two kinds of software:
- Runtime libraries required by applications
Perl runtime?I'd love to see a "Strawberry runtime" which could be the same installer file which is offered for the full installation.
Next part would be a new approach on a "perl2exe" compiler: Grab a (project|script|module), run it through perl2exe and you get a project.exe file which has a very small and simple launcher, a list of dependencies (META.YML?) and the (project|script|module) perl source. The launcher would have to
- check for an installed Strawberry runtime
- direct the user to the Strawberry download page, if there is no runtime installed
- launch the app-starter which should be part of the Strawberry
Perl applications would be runable as one-file-download without messing up the registry and without installation and adding a "--msi" switch to also create an application.msi installer using perl2exe would be easy, too.
This will not work...There would be few limitations, because all project files would have to live in one file, but this is no excuse.
I'd say, more than 95% of the Perl applications will work without any problem if all files are copied together in one which is passed to the interpreter. OS-specific source code within the application doesn't count, because it would be Windows OS-specific if they'd be written for Windows.
I'm still a Perl guy without C or C++ knowledge and without enough EXE, DLL or MSI knowledge to create this solution, but it shouldn't be too hard to get a working version. Even if 0.01 would have a long list of limitations and rules which must be respected while writing the Perl script, I'm sure that people would try - and use it!
Don't try to create a completely working solution from scratch, try to create a solution and fix problems lateron!