PDK discussion

Perl Dev Kit usage questions; Perl Dev Kit practices and project questions

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


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.


Unable to access dll created with perlctrl

Greetings all,

I am having problems with perlctrl (perl v5.14.3 64 bit, Perl Dev kit 9.2.1 build 296433 64 bit running on Windows 7 Pro 64 bit).
I am trying to create a dll from a perl module. The module works as written, but I cannot create a working dll.
I ran perlctrl –t and copied the output into my .pm file and modified the appropriate parts and saved it as a .ctrl file.
Perlctrl successfully creates a dll which I placed in Windows\System32 (just for fun, I also tried Windows\SysWOW64 with the same results) and registered successfully with regsvr32.

Compiled versus native perl apps

Is there a noticeable difference in speed between running a compiled perl exe and the native pl script?

We are running compiled exes on a Windows 2003 server and they seem to be slow, especially when multiple users are on the system. Memory seems fine, but the CPU is at 100% constantly. Static web pages display quickly but the perl exe page do not.

The server does not have Perl installed. Would it be faster to install Perl on the server and then run the native pl scripts?

Issue with a perl binary which is created from sunos (processor) x86 and tried to run at sunos procesor (sparc )

We created a binary from below configured machine using PDK9.2

OS: SunOS(solaris)
os version:5.10
system : Generic_137138-09 i86pc i386 i86pc
64-bit amd64 applications
32-bit i386 applications

The command we used to create a binary from the above machine using,
perlapp --norunlib --target solaris-sparc-32 --exe sample-solaris-sparc-32 --perl /opt/ActivePerl-5.10/bin/perl-static sample.pl

Our plan is that to execute the binary in solaris-sparc-32
Target machine configuration:
OS: SunOS(solaris)
os version:5.10
64-bit sparcv9 applications
32-bit sparc applications

PDK 9.2 target failed with solaris-sparc-32

Our version is

SunOS CTSINPKNVECA 5.10 Generic_137138-09 i86pc i386 i86pc

64-bit amd64 applications
sse4.1 ssse3 cx16 sse3 sse2 sse fxsr mmx cmov amd_sysc cx8 tsc fpu
32-bit i386 applications
sse4.1 ssse3 cx16 sse3 sse2 sse fxsr mmx cmov sep cx8 tsc fpu

and our client version is

SunOS sn4z 5.10 Generic_142909-17 sun4u sparc SUNW,SPARC-Enterprise

64-bit sparcv9 applications
ima fmaf vis2 vis popc
32-bit sparc applications
ima fmaf vis2 vis popc v8plus div32 mul32

PerlSvc and Windows Service Recovery


Does anyone know how to make a NT service created using PerlSvc recoverable - i.e use the restart properties of the service within Windows?

There doesn`t seem to be much (i.e. anything) in the documentation for PerlSvc. Any pointers/tips would be appreciated.



.exe previously worked and has now stopped working due to missing .dll

I have a compiled program running on win2008r2 64-bit that has worked flawlessly for months. Just recently, I am thinking after a windows update or AV update, it broke. Originally, it was because the OpenSSL libraries were "missing" - libeay32.dll and ssleay32.dll. I tried unsuccessfully tried to register them and eventually resorted to just putting them in the folder along with the .exe which gets me to my next error.

Can't load 'auto/DBD/Pg/Pg.dll' for module DBD::Pg: load_file:The specified module could not be found at /DynaLoader.pm line 214, line 310.

EXE created by perlapp fails with cryptic error

I am creating an executable file from a Perl script using Perlapp 9.2.1 build 296433. I have ActiveState Perl 5.16.3 installed on my build system. The .pl runs fine, and the .exe is created without any errors, but when I run it, I get:

Could not find a suitable Params::Validate implementation: Can't locate Params/Validate/XS.pm in @INC (@INC contains: P:\sandbox) at /

Module/Runtime.pm line 317.
Can't locate Params/Validate/PP.pm in @INC (@INC contains: P:\sandbox) at /

Module/Runtime.pm line 317.

dll created with perlctrl doesn't contain methods


I'm trying to make a dll file from *.pm with perlctrl. After running "perlctrl tempadd.pm" I registered the output dll file with "regsvr32 tempadd.dll". Unfortunately I can't execute the method from my test vbs script. Can anyone tell me, what I'm doing wrong ?

I'm thankful for help.

The used code is the following :

tempadd.pm :

package tempadd;

sub testme {
        return "test";


=begin PerlCtrl

    %TypeLib = (
        PackageName     => 'MyPackage::MyName',

Problem compiling for Linux with PerlApp 9.2.1 on Mac OSX

When I tried to download and install the module Bio::Phylo-0.50 using ppm I found that I was not authorized to do so because it had been removed from ActivePerl's available modules (Error: 401). I downloaded the moodule from CPAN, compiled and installed it manually and it worked fine for compiling stand-alone scripts with Mac OS X as the target.

However, when I try to compile scripts with linux-x86-32 I get the message:
401 Authorization Required at /ActivePerl/PPM/Client.pm line166.