"Illegal declaration of subroutine Perl6::Form::form" with PerlApp 9.2.1 W7/64

Posted by gilles.maisonneuve on 2013-10-15 14:36
Forums: PDK discussion | OS: Windows 7


Using Perl 5.016, PerlApp 9.2.1 on Windows 7 / 64, with the following code:

use 5.014;
use warnings;
use strict;
use Time::HiRes;
use Perl6::Form 'form';
use Encode;
use Win32::Console;
print 'foo';

I get the following error when executing the compiled version of the script:

Illegal declaration of subroutine Perl6::Form::form at /Perl6/Form.pm line 1062.
BEGIN failed--compilation aborted at array_push-slice_compare.pl line 7.


Of course I installed Perl6-Form-0.04 package using ppm and the script works when used on the console as array_push-slice_compare.pl

Is someone having an idea of what is wrong in my code (was compiling well in the past with a prior version of PerlApp Under Windows Xp 32 bits and Perl 5.014) ?


PS: I just checked (uninstalling 64bits versions and installing 32bits ones) : I get the same error using the 32bits versions of Perl (v5.16.3) and PerlApp (9.2.1 build 296433). So it seems not to be a problem related to the 64bits/32bits version of the language or the Tools but rather to the PerlApp version or the Perl version (this last hypothesis being less likely as the script still runs when evoked as a .pl file).

gilles.maisonneuve | Tue, 2013-10-15 15:05

Added a post scriptum to explain my test with 32 bits versions of the language and Tools.

ActiveState Staff
Fri, 2013-10-18 09:53

See the Release Notes and the Known Issues regarding source filters.

PerlApp is incompatible with any code using source filters. Perl6::Form depends on Perl6:Export, which uses source filters.

gilles.maisonneuve | Fri, 2013-10-18 10:33

Good evening Grahams,

Thank you for your answer and sorry not to have read properly enough the release notes about that (just read the few lines about features and install). Hope you did not mind too much I bothered you with that.

Can you tell me if there is a chance that this issue (if it is and issue in the view of ActiveState and not a feature due to the architecture of the product) will be addressed sometime in a PerlApp 9.xx version and a Perl5.xxx version. Or, on the other hand will this remain as it is until Perl6 and the appropriate PerlApp at that time?

TIA for your information in this matter,


ActiveState Staff
Mon, 2013-10-21 09:04

PerlApp needs to use static analysis to predict which modules to wrap. Self-modifying, or indeterminate code evaluated during execution, can't be predicted by static analysis. It may be possible to manually include all the potential components when wrapping, but this is error prone and unacceptably inconvenient, so we note that code designed this way is incompatible with the PerlApp design.

It's our opinion that Perl 6 is not yet ready, and in any case does not have sufficient uptake to be a significant tools market. A PerlApp for Perl 6 is in wait-and-see mode, and it could be a long time. There are no plans to do any work on ActivePerl 6 in the foreseeable future.